exponenta event banner

предварительный просмотр

Класс: matlab.io.datastore.sdidatastore
Пакет: matlab.io.datastore

Возврат предварительного просмотра данных в sdidatstore

Синтаксис

dataPreview = sdi_ds.preview

Описание

dataPreview = sdi_ds.preview возвращает первые 10 выборок данных сигнала в matlab.io.datastore.sdidatastore, sdi_ds. preview метод не изменяет позицию чтения. Используйте preview чтобы проверить, что данные в matlab.io.datastore.sdidatastore выглядит так, как вы ожидаете.

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

развернуть все

Первые 10 выборок сигнала, на который ссылается matlab.io.datastore.sdidatastore в timetable.

Примеры

развернуть все

A matlab.io.datastore.sdidatastore ссылается на данные сигнала в репозитории Simulation Data Inspector. Если сигнал слишком велик, чтобы поместиться в память, можно использовать matlab.io.datastore.sdidatastore для инкрементной обработки данных вручную или для создания высокого расписания для сигнала, который обрабатывает инкрементную обработку для вас. В этом примере показано, как обрабатывать данные с помощью matlab.io.datastore.sdidatastore.

Создать matlab.io.datastore.sdidatastore для сигнала

Моделирование sldemo_fuelsys модель, которая сконфигурирована для регистрации нескольких сигналов, для создания данных в репозитории Simulation Data Inspector.

sim('sldemo_fuelsys')

Программный интерфейс Simulation Data Inspector используется для получения идентификатора сигнала.

runCount = Simulink.sdi.getRunCount;

latestRunID = Simulink.sdi.getRunIDByIndex(runCount);

latestRun = Simulink.sdi.getRun(latestRunID);

speedSigID = latestRun.getSignalIDByIndex(4);

Используйте идентификатор сигнала для создания matlab.io.datastore.sdidatastore для speed сигнал.

speedSDIds = matlab.io.datastore.sdidatastore(speedSigID);

Проверка содержимого хранилища данных

Проверьте Name имущества matlab.io.datastore.sdidatastore чтобы убедиться, что он соответствует вашим ожиданиям.

speedSDIds.Name
ans = 
'map'

Вы также можете использовать preview способ проверки правильности первых десяти выборок в сигнале.

speedSDIds.preview
ans=10×1 timetable
         Time          Data  
    ______________    _______

    0 sec               0.589
    0.00056199 sec    0.58772
    0.0033719 sec     0.58148
    0.01 sec          0.56765
    0.02 sec          0.54897
    0.03 sec          0.53264
    0.04 sec          0.51837
    0.05 sec          0.50594
    0.055328 sec          0.5
    0.055328 sec          0.5

Обработка данных сигнала с помощью matlab.io.datastore.sdidatastore

Когда сигнал слишком велик, чтобы поместиться в память, можно использовать readData метод считывания порций данных из репозитория Simulation Data Inspector для инкрементной обработки данных. Используйте hasdata способ в качестве условия цикла времени для инкрементной обработки всего сигнала. Например, найдите максимальное значение сигнала.

latestMax = [];

while speedSDIds.hasdata
    
    speedChunk = speedSDIds.read;
    speedChunkData = speedChunk.Data;
    latestMax = max([speedChunkData; latestMax]);
    
end

latestMax
latestMax = 0.8897

При каждой операции считывания read обновляет положение чтения для начала следующей операции чтения. После прочтения некоторых или всех matlab.io.datastore.sdidatastore, можно сбросить положение считывания, чтобы начать заново с начала сигнала.

speedSDIds.reset

Обработка сигнальных данных в памяти

Когда на сигнал ссылается ваш matlab.io.datastore.sdidatastore вписывается в память, можно использовать readall способ считывания всех сигнальных данных в память для обработки, а не считывания и инкрементной обработки данных с помощью read способ. readall метод возвращает timetable со всеми данными сигнала.

speedTimetable = speedSDIds.readall;

speedMax = max(speedTimetable.Data)
speedMax = 0.8897
Представлен в R2017b