Класс: matlab.io.datastore.sdidatastore
Пакет: matlab.io.datastore
Сбросьте положение чтения
sdi_ds.reset
sdi_ds.reset
сбрасывает положение чтения для matlab.io.datastore.sdidatastore
, sdi_ds
, к началу.
matlab.io.datastore.sdidatastore
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 = 'speed'
Можно также использовать метод preview
, чтобы проверять, что первые десять выборок во взгляде сигнала исправляют.
speedSDIds.preview
ans=10×2 timetable
Time Data
______________ ____
0 sec 300
0.00056199 sec 300
0.0033719 sec 300
0.01 sec 300
0.02 sec 300
0.03 sec 300
0.04 sec 300
0.05 sec 300
0.055328 sec 300
0.055328 sec 300
Данные сигнала процесса с matlab.io.datastore.sdidatastore
Когда ваш сигнал является слишком большим, чтобы поместиться в память, можно использовать метод readData
, чтобы считать фрагменты данных от Инспектора Данных моделирования репозиторий, чтобы инкрементно обработать данные. Используйте метод hasdata
в качестве условия некоторое время цикл, чтобы инкрементно обработать целый сигнал. Например, найдите максимальное значение сигналов.
latestMax = []; while speedSDIds.hasdata speedChunk = speedSDIds.read; speedChunkData = speedChunk.Data; latestMax = max([speedChunkData; latestMax]); end latestMax
latestMax = 300
На каждой операции чтения метод read
обновляет положение чтения для запуска следующей операции чтения. После чтения некоторых или всего matlab.io.datastore.sdidatastore
, можно сбросить положение чтения, чтобы запуститься снова с начала сигнала.
speedSDIds.reset
Данные сигнала процесса в памяти
Когда сигнал, на который ссылается ваш matlab.io.datastore.sdidatastore
, помещается в память, можно использовать метод readall
, чтобы считать все данные сигнала в память для обработки, вместо того, чтобы читать и обработать данные инкрементно с методом read
. Метод readall
возвращает timetable
со всеми данными сигнала.
speedTimetable = speedSDIds.readall; speedMax = max(speedTimetable.Data)
speedMax = 300
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.