主要内容

hasdata

班级:matlab.io.datastore.sdidatastore
包裹:matlab.io.datastore

确定数据是否可读取

句法

tf = sdi_ds.hasdata

描述

TF= sdi_ds.hasdata返回逻辑1如果是matlab.io.datastore.sdidatastore,,,,SDI_DS,有可读取的数据。什么时候SDI_DSdoes not have data available to read,hasdata返回0

输出参数

展开全部

逻辑指示是否matlab.io.datastore.sdidatastore具有可读取的数据。当数据可用时TF1。当数据不可用时TF0

例子

展开全部

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

创建一个matlab.io.datastore.sdidatastore用于信号

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

sim('sldemo_fuelsys'

使用Simulation Data Inspector programmatic interface to get the signal ID for the signal.

runco​​unt 万博1manbetx= simulink.sdi.getRuncount;latestrunid = 万博1manbetxsimulink.sdi.getRunidByIndex(runco​​unt);latestrun = 万博1manbetxsimulink.sdi.getrun(latestrunid);speedsigid = latestrun.getSignalidByIndex(4);

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

speedsdids = matlab.io.datastore.sdidatastore(speedsigid);

验证数据存储的内容

检查姓名property of thematlab.io.datastore.sdidatastore验证它是否与您的期望相匹配。

速度SDIds.Name
ans = 'map'

您也可以使用预习方法检查的第十个样品signal look correct.

speedsdids.preview
ans =10×1时间表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方法作为一段时间循环的条件,可以逐步处理整个信号。例如,找到最大信号值。

最新max= [];尽管速度SDIds.hasdata speedChunk = speedSDIds.read; speedChunkData = speedChunk.Data; latestMax = max([speedChunkData; latestMax]);结尾最新max
最新max = 0.8897

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

speedsdids.reset

记忆中的过程信号数据

当您引用的信号matlab.io.datastore.sdidatastore适合记忆,您可以使用读取method to read all the signal data into memory for processing, rather than reading and processing the data incrementally with the方法。这读取method returns a时间表使用所有信号数据。

speedtimetable = speedsdids.readall;speedmax = max(speedtimetable.data)
SpeedMax = 0.8897

版本历史记录

在R2017b中引入