主要内容

预览

类:matlab.io.datastore.SimulationDatastore
包:matlab.io.datastore

从数据存储返回数据子集

语法

数据=预览(dst)

描述

数据=预览(dst从数据存储(matlab.io.datastore.SimulationDatastore对象)dst不改变当前读位置。预览只返回数据存储中数据的前十个样本(时间步长)。使用此方法可以快速检查和验证数据是否如您所期望的那样显示。

输入参数

全部展开

输入数据存储,指定为matlab.io.datastore.SimulationDatastore对象。要创建SimulationDatastore对象,看到matlab.io.datastore.SimulationDatastore

输出参数

全部展开

数据的子集,返回为时间表对象。有关时间表,请参阅时间表

例子

全部展开

这个例子展示了如何从模拟中记录大数据,并通过与交互来检查和分析该数据的部分matlab.io.datastore.SimulationDatastore对象。

从模型记录大数据

打开示例模型sldemo_fuelsys

open_system (“sldemo_fuelsys”

选择配置参数>数据导入导出>日志数据集数据保存到文件

set_param (“sldemo_fuelsys”“LoggingToFile”“上”

模拟模型。

sim卡(“sldemo_fuelsys”

的MAT-fileout.mat显示在当前文件夹中。该文件包含记录信号的数据,例如燃料(位于模型的根级别)。

在命令提示符下,创建一个DatasetRef对象,该对象按名称引用日志记录变量,sldemo_fuelsys_output

DSRef = 金宝appSimulink.SimulationData.DatasetRef(“out.mat”“sldemo_fuelsys_output”);

大数据预览

使用大括号(而且)来提取信号元素燃料,是第10个元素DSRef,作为金宝appSimulink.SimulationData.Signal对象,该对象包含SimulationDatastore对象。

SimDataSig = DSRef{10};

以便更容易地与SimulationDatastore对象中的的属性信号对象,将句柄存储在名为DStore

DStore = SimDataSig.Values;

使用预览方法检查记录数据的前五个样本燃料信号。

预览(DStore)
ans = 10x1时间表时间数据______________ ______ 0秒1.209 0.00056199秒1.209 0.0033719秒1.209 0.01秒1.1729 0.02秒1.1409 0.03秒1.1124 0.04秒1.0873 0.05秒1.0652 0.055328秒1.0652 0.055328秒1.0652

检查特定样品

检查603个已记录的样品燃料数据。

设置ReadSize的属性DStore到一个数字,考虑到内存资源,您的计算机可以容忍。例如,setReadSize200

DStore。ReadSize = 200;

从数据存储中读取三次。每次读取操作将读取位置提高200个样本。

读(DStore);读(DStore);读(DStore);

现在你已经非常接近第603个样本了ReadSize到一个更小的数。例如,setReadSize5

DStore。ReadSize = 5;

再次从数据存储中读取。

阅读(DStore)
ans = 5x1时间表时间数据________ ______ 5.79秒1.6097 5.8秒1.6136 5.81秒1.6003 5.82秒1.5904 5.83秒1.5832

读取数据的第三个示例是数据存储中的第603个示例。

检查前期样品

检查记录的第403个样品燃料数据。由于之前的读取操作,数据存储现在从第606个示例开始读取,因此必须重置数据存储。然后,可以从第一个样本读到第403个样本。

使用重置方法进行重置。DStore

重置(DStore);

ReadSize200一次。

DStore。ReadSize = 200;

从数据存储中读取两次,将读取位置推进到第401个样本。

读(DStore);读(DStore);

ReadSize5一次。

DStore。ReadSize = 5;

从数据存储中读取。

阅读(DStore)
ans = 5x1时间表时间数据________ _______ 3.85秒0.999 3.86秒0.99219 3.87秒0.98538 3.88秒0.97858 3.89秒0.97179

提取多个样本

抽取样本1001 ~ 1020(共20个样本)。

重置数据存储。

重置(DStore)

进入样本1001。

DStore。ReadSize = 200;i = 1:5 read(DStore);结束

准备从数据存储中提取20个样本。

DStore。ReadSize = 20;

提取样本1001到1020。将提取的数据存储在名为targetSamples

targetSamples = read(DStore)
targetSamples = 20x1时间表时间数据________ ______ 9.7 sec 1.5828 9.71 sec 1.5733 9.72 sec 1.5664 9.73 sec 1.5614 9.74 sec 1.5579 9.75 sec 1.5553 9.76 sec 1.5703 9.77 sec 1.582 9.78 sec 1.5913 9.79 sec 1.5988 9.8 sec 1.605 9.81 sec 1.6101 9.82 sec 1.6145 9.83 sec 1.6184 9.84 sec 1.6049 9.85 sec 1.595 9.86 sec 1.5824 9.88 sec 1.5785 9.89 sec 1.5757

在数据存储中找到数据的最大值

重置数据存储。

重置(DStore)

写一个循环,使用hasdata方法,对200个样本的数据块进行增量分析。

DStore。ReadSize = 200;runningMax = [];hasdata(DStore) tt = read(DStore);rawChunk = tt.Data;runningMax = max([rawChunk;runningMax]);结束

现在,变量runningMax在整个数据存储中存储最大值。

runningMax
runningMax = 1.6423

另请参阅

在R2017a中引入