Main Content

preview

Class:matlab.io.datastore.sdidatastore
Package:matlab.io.datastore

Return preview of data in sdidatstore

Syntax

dataPreview= sdi_ds.preview

Description

dataPreview= sdi_ds.previewreturns the first 10 samples of signal data in thematlab.io.datastore.sdidatastore,sdi_ds. Thepreviewmethod does not change the read position. Use thepreviewmethod to verify that the data in yourmatlab.io.datastore.sdidatastoreappears as you expect.

Output Arguments

expand all

First 10 samples of the signal referenced by thematlab.io.datastore.sdidatastorein atimetable.

Examples

expand all

Amatlab.io.datastore.sdidatastorereferences signal data in the Simulation Data Inspector repository. When the signal is too large to fit into memory, you can use thematlab.io.datastore.sdidatastoreto incrementally process the data manually or to create a tall timetable for the signal that handles the incremental processing for you. This example shows how to process data using amatlab.io.datastore.sdidatastore.

创建一个matlab.io.datastore.sdidatastorefor a Signal

Simulate thesldemo_fuelsysmodel, which is configured to log several signals, to create data in the Simulation Data Inspector repository.

sim卡('sldemo_fuelsys')

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

runCount = Simulink.sdi.getRunCount; latestRunID = Simulink.sdi.getRunIDByIndex(runCount); latestRun = Simulink.sdi.getRun(latestRunID); speedSigID = latestRun.getSignalIDByIndex(4);

Use the signal ID to create amatlab.io.datastore.sdidatastore为了speedsignal.

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

Verify the Contents of the Datastore

Check theName属性matlab.io.datastore.sdidatastoreto verify that it matches your expectations.

speedsdids.name
ans ='map'

You can also use thepreview检查信号中的前十个样本是否看起来正确的方法。

speedSDIds.preview
ans=10×1 timetableTime 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

Process Signal Data with thematlab.io.datastore.sdidatastore

When your signal is too large to fit into memory, you can use thereadDatamethod to read chunks of data from the Simulation Data Inspector repository to incrementally process your data. Use thehasdatamethod as the condition for a while loop to incrementally process the whole signal. For example, find the maximum signal value.

最新max = [];whilespeedsdids.hasdata speedchunk = speedsdids.reads.read;speedchunkdata = speedchunk.data;最新max = max([speedchunkdata;最终max]);endlatestMax
latestMax = 0.8897

On each read operation, thereadmethod updates the read position for the start of the next read operation. After reading some or all of thematlab.io.datastore.sdidatastore, you can reset the read position to start again from the beginning of the signal.

speedSDIds.reset

Process Signal Data in Memory

When the signal referenced by yourmatlab.io.datastore.sdidatastorefits into memory, you can use thereadall将所有信号数据读取到存储器中进行处理的方法,而不是通过逐步读取和处理数据readmethod. Thereadall方法返回timetablewith all the signal data.

speedTimetable = speedSDIds.readall; speedMax = max(speedTimetable.Data)
speedMax = 0.8897

他的版本tory

Introduced in R2017b