hasdata
类:matlab.io.datastore.SimulationDatastore
包:matlab.io.datastore
确定是否有数据可读
语法
Tf = hasdata(dst)
描述
Tf = hasdata(
返回逻辑dst
)1
(真正的
),如果有数据可从数据存储(matlab.io.datastore.SimulationDatastore
对象)由dst
.否则,它返回逻辑0
(假
).
输入参数
dst
- - - - - -输入数据存储
matlab.io.datastore.SimulationDatastore
对象
输入数据存储,指定为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 = 万博1manbetxSimulink.SimulationData.DatasetRef(“out.mat”,“sldemo_fuelsys_output”);
大数据预览
使用大括号({
而且}
)提取信号元燃料
的第10个元素DSRef
,作为万博1manbetxSimulink.SimulationData.Signal
对象,该对象包含SimulationDatastore
对象。
SimDataSig = DSRef{10};
以便更容易地与SimulationDatastore
对象中驻留的值
的属性信号
对象,将句柄存储在名为DStore
.
DStore = simdatasg . 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
考虑到内存资源,您的计算机可以容忍的数字。例如,setReadSize
来200
.
DStore。ReadSize = 200;
从数据存储中读取三次。每次读取操作将读取位置提前200个样本。
读(DStore);读(DStore);读(DStore);
现在你已经非常接近第603个样本了,开始吧ReadSize
到一个更小的数字。例如,setReadSize
来5
.
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);
集ReadSize
来200
一次。
DStore。ReadSize = 200;
从数据存储中读取两次,将读取位置推进到第401个示例。
读(DStore);读(DStore);
集ReadSize
来5
一次。
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秒1.5828 9.71秒1.5733 9.72秒1.5664 9.73秒1.5614 9.74秒1.5579 9.75秒1.5553 9.76秒1.5703 9.77秒1.582 9.78秒1.5913 9.79秒1.5988 9.8秒1.605 9.81秒1.6101 9.82秒1.6145 9.83秒1.6184 9.84秒1.6049 9.85秒1.595 9.86秒1.5824 9.88秒1.5785 9.89秒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中介绍
另请参阅
主题
MATLAB命令
你点击了一个对应于这个MATLAB命令的链接:
在MATLAB命令窗口中输入命令来运行该命令。Web浏览器不支持MATLAB命令。万博1manbetx
您也可以从以下列表中选择网站:
如何获得最佳的网站性能
选择中国网站(中文或英文)以获得最佳的网站表现。其他MathWorks国家网站没有针对从您的位置访问进行优化。