matlab.io.datastore.sdidatastore.readall

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

Считывайте все данные от sdidatastore

Синтаксис

data = sdi_ds.readall

Описание

data = sdi_ds.readall считывает все данные в matlab.io.datastore.sdidatastore, sdi_ds, в память, возвращая timetableданные. Используйте readall только, когда на сигнал ссылается matlab.io.datastore.sdidatastore помещается в память.

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

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

Все данные в matlab.io.datastore.sdidatastore, возвращенный в timetable.

Примеры

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

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

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

Симулируйте sldemo_fuelsys модель, которая сконфигурирована, чтобы регистрировать несколько сигналов, создать данные в Инспекторе Данных моделирования репозиторий.

sim('sldemo_fuelsys')

Используйте Инспектора Данных моделирования программируемый интерфейс, чтобы получить ID сигнала для сигнала.

runCount = Simulink.sdi.getRunCount;

latestRunID = Simulink.sdi.getRunIDByIndex(runCount);

latestRun = Simulink.sdi.getRun(latestRunID);

speedSigID = latestRun.getSignalIDByIndex(4);

Используйте ID сигнала, чтобы создать matlab.io.datastore.sdidatastore для speed сигнал.

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

Проверьте содержимое Datastore

Проверяйте Name свойство matlab.io.datastore.sdidatastore проверять, что это совпадает с вашими ожиданиями.

speedSDIds.Name
ans = 
'map'

Можно также использовать preview метод, чтобы проверять, что первые десять выборок в правильный взгляд сигнала.

speedSDIds.preview
ans=10×2 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 метод, чтобы считать фрагменты данных от Инспектора Данных моделирования репозиторий, чтобы инкрементно обработать ваши данные. Используйте 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

Альтернативы

Когда ваши сигналы помещаются в память, можно использовать другие классы и функции Инспектора Данных моделирования программируемый интерфейс, как Simulink.sdi.Signal класс, чтобы получить доступ и обработать данные моделирования.

Смотрите также

Темы

Введенный в R2017b