Simulink.SimulationData.forEachTimeseries

Вызовите функцию на каждом timeseries объект

Описание

пример

dataResults = Simulink.SimulationData.forEachTimeseries(functionHandle,inputData) запускает заданный указатель на функцию на всем MATLAB® timeseries объекты содержатся в inputData.

Примеры

свернуть все

В этом примере показано, как использовать forEachTimeseries функционируйте, чтобы запустить min функция на каждом timeseries объект в записанных данных для COUNTERBUS сигнал.

Откройте модель и симулируйте ее.

open_system('sldemo_mdlref_bus')
sim('sldemo_mdlref_bus');

Доступ к данным о регистрации сигнала. Для этой модели те данные хранятся в topOut переменная.

topOut
Simulink.SimulationData.Dataset 'topOut' with 4 elements

                         Name          BlockPath                                
                         ____________  ________________________________________ 
    1  [1x1 Signal]      COUNTERBUS    sldemo_mdlref_bus/Concatenate           
    2  [1x1 Signal]      OUTERDATA     sldemo_mdlref_bus/CounterA              
    3  [1x1 Signal]      INCREMENTBUS  sldemo_mdlref_bus/IncrementBusCreator   
    4  [1x1 Signal]      INNERDATA     ...erA|sldemo_mdlref_counter_bus/COUNTER

  - Use braces { } to access, modify, or add elements using index.

Найдите значения для COUNTERBUS элемент.

counterbusData = topOut{1}.Values
counterbusData = 

  2×1 struct array with fields:

    data
    limits

Запустите min функция на counterbus данные.

ret = Simulink.SimulationData.forEachTimeseries(@min,counterbusData)
ret = 

2x1 struct array with fields:
  data
limits

Исследуйте возвращенные данные.

ret(1)
ans =

    data: 0
  limits: [1x1 struct]
ret(2).limits 
ans =

  upper_saturation_limit: 40
  lower_saturation_limit: 0

Входные параметры

свернуть все

Функция, чтобы работать на timeseries объекты в виде указателя на функцию. Для получения информации об определении указателей на функцию смотрите Функцию Передачи к Другой Функции.

Функция, которую вы используете с forEachTimeseries:

  • Может быть или встроенная функция или заданная пользователями функция

  • Должен возвратить скаляр

Если функция, которую вы используете с forEachTimeseries берет:

  • Один аргумент, задайте указатель на функцию и входные данные. Например:

    ret = Simulink.SimulationData.forEachTimeseries(@min,data);
  • Больше чем один аргумент, задайте указатель на функцию как @(x) и затем задайте функцию, с помощью x в качестве первого аргумента. Для остающихся аргументов задайте значения. Например, эта команда запускает resample функция на MATLAB timeseries объекты в данных, для временного вектора [2.5 3].

    ret = Simulink.SimulationData.forEachTimeseries(@(x)...
     (resample(x,[2.5 3])),data);

Данные, чтобы работать на заданной функции в виде timeseries данные.

Выходные аргументы

свернуть все

Данные, следующие из выполнения заданной функции, возвращенного использования формата и иерархии входных данных.

Ссылки по теме

MATLAB timeseriesУказатели на функции

Введенный в R2017b