主要内容

重置

类:matlab.io.datastore.sdidatastore
包:matlab.io.datastore

重置读取位置

语法

sdi_ds.reset

描述

sdi_ds.reset对象的读取位置matlab.io.datastore.sdidatastoresdi_ds从头到尾。

例子

全部展开

一个matlab.io.datastore.sdidatastore引用仿真数据检查器储存库中的信号数据。当信号太大而无法装入内存时,可以使用matlab.io.datastore.sdidatastore手动增量处理数据,或者为为您处理增量处理的信号创建一个高时间表。此示例演示如何使用类处理数据matlab.io.datastore.sdidatastore

创建一个matlab.io.datastore.sdidatastore对一个信号

模拟sldemo_fuelsys模型,它被配置为记录几个信号,以在仿真数据检查器存储库中创建数据。

sim卡(“sldemo_fuelsys”

使用仿真数据检查器编程接口来获取信号的信号ID。

runCount = 金宝appSimulink.sdi.getRunCount;latestRunID = 金宝appSimulink.sdi.getRunIDByIndex (runCount);latestRun = 金宝appSimulink.sdi.getRun (latestRunID);speedSigID = latestRun.getSignalIDByIndex (4);

使用信号ID创建一个matlab.io.datastore.sdidatastore速度信号。

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

验证数据存储的内容

检查的名字财产的matlab.io.datastore.sdidatastore验证它是否符合您的期望。

speedSDIds。的名字
ans =“地图”

你也可以使用预览方法来检查信号中的前十个样本看起来是否正确。

speedSDIds.preview
ans =10×1的时间表时间数据______________ _______ 0秒0.589 0.00056199秒0.58772 0.0033719秒0.58148 0.01秒0.56765 0.02秒0.54897 0.03秒0.53264 0.04秒0.51837 0.05秒0.50594 0.055328秒0.5 0.055328秒0.5

方法处理信号数据matlab.io.datastore.sdidatastore

当您的信号太大而无法装入内存时,您可以使用readData方法从模拟数据检查器存储库中读取数据块,以增量处理数据。使用hasdata方法作为while循环增量处理整个信号的条件。例如,找出最大信号值。

latestMax = [];speedSDIds。hasdata速度Chunk = speedSDIds.read; speedChunkData = speedChunk.Data; latestMax = max([speedChunkData; latestMax]);结束latestMax
latestMax = 0.8897

在每个读操作上,方法更新下一个读取操作开始时的读取位置。在阅读了部分或全部的matlab.io.datastore.sdidatastore,你可以重置读取位置,重新开始从信号的开始。

speedSDIds.reset

处理内存中的信号数据

当信号被您引用时matlab.io.datastore.sdidatastore装入内存,您可以使用readall方法将所有信号数据读入内存中进行处理,而不是使用方法。的readall方法返回一个时间表所有的信号数据。

speedTimetable = speedSDIds.readall;speedMax = max (speedTimetable.Data)
speedMax = 0.8897
介绍了R2017b