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Указатели на функции

Введенный в R2016b