В этом примере показано, как создать длинное расписание для сигнала в Инспекторе Данных моделирования репозиторий. Можно создать длинное расписание с помощью Simulink.sdi.Signal возразите или первым созданием matlab.io.datastore.sdidatastore для сигнала. Можно использовать matlab.io.datastore.sdidatastore чтобы инкрементно читать и обработать данные сигнала для сигналов, которые не помещаются в память. Длинное расписание обрабатывает разделение на блоки данных и обработку в фоновом режиме. В общем случае можно работать с длинными расписаниями очень похоже к тому, как вы работаете с данными в оперативной памяти.
Создайте данные и доступ к ID сигнала
Создаете ли вы свое длинное расписание с помощью Simulink.sdi.Signal возразите или matlab.io.datastore.sdidatastore, запустите путем создания данных и доступа к ID сигнала для сигнала интереса. sldemo_fuelsys модель сконфигурирована, чтобы регистрировать сигналы, какой поток Инспектору Данных моделирования репозиторий, когда вы симулируете модель.
Затем используйте Инспектора Данных моделирования программируемый интерфейс, чтобы получить доступ к ID сигнала для сигнала интереса. Например, получите доступ к ego сигнал.
Создайте длинное расписание Используя matlab.io.datastore.sdidatastore
В общем случае длинные расписания поддерживаются хранилищами данных. Создайте matlab.io.datastore.sdidatastore возразите, чтобы сослаться на данные сигнала в Инспекторе Данных моделирования репозиторий.
Проверяйте имя datastore, чтобы проверить, что у вас есть сигнал, который вы ожидаете.
Создайте длинное расписание из matlab.io.datastore.sdidatastore использовать для обработки данных сигнала. Когда у вас есть лицензия Parallel Computing Toolbox™, необходимо явным образом установить среду выполнения на локальный сеанс MATLAB® с помощью mapreducer прежде, чем создать длинное расписание. matlab.io.datastore.sdidatastore объект не поддерживает параллельные расчеты.
egoTt =
Mx1 tall timetable
Time Data
______________ ______
0 sec 1.209
0.00056199 sec 1.209
0.0033719 sec 1.209
0.01 sec 1.1729
0.02 sec 1.1409
0.03 sec 1.1124
0.04 sec 1.0873
0.05 sec 1.0652
: :
: :
Создайте длинное расписание Используя Simulink.sdi.Signal Объект
Simulink.sdi.Signal класс имеет метод, чтобы создать длинное расписание непосредственно, позволяя вам пропустить шаг создания datastore путем создания его негласно. Используйте ID сигнала, чтобы получить доступ к Simulink.sdi.Signal объект для ego сигнал. Затем используйте getTable метод, чтобы создать длинное расписание.
egoTt =
Mx1 tall timetable
Time Data
______________ ______
0 sec 1.209
0.00056199 sec 1.209
0.0033719 sec 1.209
0.01 sec 1.1729
0.02 sec 1.1409
0.03 sec 1.1124
0.04 sec 1.0873
0.05 sec 1.0652
: :
: :
Используйте длинное расписание, чтобы обработать ваши данные сигнала
Когда вы используете длинное расписание egoTt, его базовый datastore читает фрагменты данных и передает их длинному расписанию к процессу. Ни datastore, ни длинное расписание не сохраняют ни одних из данных в памяти после обработки. Кроме того, длинное расписание задерживает обработку для многих операций. Например, вычислите среднее значение сигнала.
Можно использовать gather функция, чтобы оценить переменную и записать ее значение в рабочую область, или можно использовать write функционируйте, чтобы записать результаты в диск. Когда вы используете gather, убедитесь, что результаты помещаются в память.
Evaluating tall expression using the Local MATLAB Session:
- Pass 1 of 1: Completed in 1 min 39 sec
Evaluation completed in 1 min 39 sec
Когда вы выполняете несколько операций на длинном расписании, оценка результатов для каждого шага задерживается, пока вы явным образом не запрашиваете результаты с write или gather. Во время оценки MATLAB оптимизирует количество передач, которые это делает через длинное расписание, которое может значительно ускорить время вычислений для анализа очень больших сигналов. Для получения дополнительной информации о работе с длинными массивами, смотрите Длинные массивы для Данных, которые не помещаются в память.