主要内容

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

从sdidatastore读取数据块

语法

Data = sdi_ds.read

描述

数据= sdi_ds.read中读取一大块样本matlab.io.datastore.sdidatastoresdi_ds,并更新的读位置sdi_ds返回到返回数据端点之后的点。样品返回时间表数据。读取的样本数方法不一,而返回时间表总是能放进记忆里。使用方法以增量方式处理过大而无法装入内存的信号。

输出参数

全部展开

读取的样本块matlab.io.datastore.simulationdatastore,作为时间表

例子

全部展开

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

创建一个matlab.io.datastore.sdidatastore寻找信号

模拟sldemo_fuelsys模型,它被配置为记录几个信号,以在Simulation data Inspector存储库中创建数据。

sim卡(“sldemo_fuelsys”

使用“模拟数据检查器”编程接口获取信号的信号ID。

runCount = 万博1manbetxSimulink.sdi.getRunCount;latestRunID = 万博1manbetxSimulink.sdi.getRunIDByIndex(runCount);latestRun = 万博1manbetxSimulink.sdi.getRun(latestRunID);speedSigID = latestRun.getSignalIDByIndex(4);

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

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

验证数据存储的内容

检查的名字的属性matlab.io.datastore.sdidatastore验证它是否符合你的期望。

speedSDIds。的名字
Ans = 'map'

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

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方法返回时间表所有的信号数据。

speedschedule = speedsdds .readall;speedMax = max(speedschedule . data)
speedMax = 0.8897

选择

你可以使用matlab.io.datastore.sdidatastore创建一个高的时间表,以处理内存中无法容纳的过大信号。高大的时间表为您处理信号数据块的加载和处理。的matlab.io.datastore.sdidatastore参考页包括一个示例,说明如何使用高时间表处理数据。有关使用高时间表工作的更多信息,请参见高大的数组

版本历史

在R2017b中引入