Класс: matlab.io.datastore.sdidatastore
Пакет: matlab.io.datastore
Сброс положения считывания
sdi_ds.reset
sdi_ds.reset сбрасывает позицию считывания для matlab.io.datastore.sdidatastore, sdi_ds, к началу.
matlab.io.datastore.sdidatastoreA 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
Имеется измененная версия этого примера. Открыть этот пример с помощью изменений?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.