Вызовите функцию на каждом объекте timeseries
dataResults = Simulink.SimulationData.forEachTimeseries(functionHandle,inputData)запускает заданный указатель на функцию на всех объектах MATLAB® dataResults = Simulink.SimulationData.forEachTimeseries(functionHandle,inputData) 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}.ValuescounterbusData =
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
functionHandle — Функционируйте, чтобы работать на MATLAB объекты timeseriesФункция, чтобы работать на объектах timeseries, заданных как указатель на функцию. Для получения информации об определении указателей на функцию смотрите Функцию Передачи к Другой Функции (MATLAB).
Функция, которую вы используете с 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);inputData — Данные, чтобы работать на заданной функцииtimeseries | массив timeseries | структура с timeseries в вершинах | массив структур с timeseries в вершинахДанные, чтобы работать на заданной функции, заданной как данные timeseries.
dataResults — Данные, следующие из выполнения заданной функцииtimeseries | массив timeseries | структура с timeseries в вершинах | массив структур с timeseries в вершинахДанные, следующие из выполнения заданной функции, возвращенного использования формата и иерархии входных данных.
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.