主要内容

matlab.io.datastore.SimulationDatastoreclass

包:matlab.io.datastore

数据存储的输入和输出万博1manbetx模型

描述

一个matlab.io.datastore.SimulationDatastore对象可以仿真软件万博1manbetx®模型与大数据进行交互。你可以加载大数据作为模拟输入和日志输出的数据模拟。模拟模型与大数据,你的数据存储在一个MAT-file和通过一个参考数据SimulationDatastore对象。看到处理大数据的模拟

一个SimulationDatastore对象是指大型仿真数据为一个信号(MAT-file商店)。如果MAT-file商店总线信号,仿真数据SimulationDatastore对象指的是数据总线中的一片树叶信号元素。您可以使用数据存储对象检查和访问数据,通过一个父对象等万博1manbetxSimulink.SimulationData.Signal,模拟仿真软件模型与数据。万博1manbetx

分析数据存储数据,您可以使用的方法和属性SimulationDatastore对象以及MATLAB®工具,如函数。关于MATLAB工具的更多信息,请参阅开始使用数据存储

建设

在你商店大仿真数据万博1manbetxSimulink.SimulationData.Dataset对象MAT-file,元素的一个信号数据集对象指向大数据。创建一个matlab.io.datastore.SimulationDatastore对象指的是大数据:

  1. 在命令提示符处或在脚本中,创建一个万博1manbetxSimulink.SimulationData.DatasetRef对象,指的是数据集MAT-file对象。

  2. 使用这些技巧之一:

    • 使用集中,大括号索引(例如,{1})返回一个对象,该对象表示目标信号元素,如万博1manbetxSimulink.SimulationData.Signal万博1manbetxSimulink.SimulationData.State。例如,对于一个DatasetRef对象命名logsout_ref,创建一个信号对象是指第二个信号元素,使用这段代码:

      myLoggedSig = logsout_ref {2}

    • 使用getAsDatastore的方法DatasetRef对象返回一个对象,该对象代表了目标信号元素。有关更多信息,请参见getAsDatastore

SimulationDatastore对象驻留在返回的对象的属性。

属性

全部展开

文件的名称和路径包含大数据,作为一个特征向量返回。这个属性是只读的。

数据类型:字符

样本总数(时间步)数据存储,作为一个整数返回。的readall方法从大数据中提取这么多样品。这个属性是只读的。

数据类型:uint64

一次读取的数据量,在样本数量(时间步长),指定为一个标量翻倍。的方法从大数据中提取这么多样品。

数据类型:

方法

hasdata 确定数据可用来读
isPartitionable 确定是否可分区的数据存储
isShuffleable 确定是否shuffleable数据存储
预览 从数据存储返回的数据子集
进步 返回的数据,从数据存储中读取
在数据存储中读取数据
readall 读取所有数据存储中的数据
重置 数据存储重置为初始状态

复制语义

句柄。学习如何处理类影响复制操作,明白了复制对象

限制

  • SimulationDatastore不支持使用并行池和万博1manbetx并行计算工具箱™安装。使用高阵列分析数据或运行MapReduce算法,设置全局执行环境是当地使用MATLAB会话mapreduce。输入此代码:

    mapreduce (0)
    控制并行资源的信息,请参阅在并行运行mapreduce池(并行计算工具箱)

  • 你不能使用MATLAB高变量作为模拟输入数据。

例子

全部折叠

这个例子展示了如何从一个模拟日志大数据、检查和分析部分,通过交互数据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”);

大数据预览

使用花括号({})提取信号元素燃料,这是第十个元素DSRef,作为一个万博1manbetxSimulink.SimulationData.Signal对象,该对象包含一个SimulationDatastore对象。

SimDataSig = DSRef {10};

更容易与之交互SimulationDatastore对象驻留在财产的信号对象句柄存储在一个变量命名DStore

DStore = SimDataSig.Values;

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

预览(DStore)
ans = 10 x1 ______时间表时间数据* * * 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 1.0652 0.055328秒

检查特定的样本

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

设置ReadSize的属性DStore一个数字,考虑内存资源,你的电脑可以容忍。例如,设置ReadSize200年

DStore。ReadSize = 200;

从数据存储读取三次。每个读操作提出了阅读位置由200个样本。

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

现在你非常接近603样本,集ReadSize到一个更小的数字。例如,设置ReadSize5

DStore。ReadSize = 5;

从数据存储读取一次。

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

第三个读取数据样本是603样本的数据存储。

检查样品早些时候

检查记录的403样品燃料数据。现在由于先前的读取操作,数据存储读取从606样品,所以你必须重置数据存储。然后,您可以读取第一个样本的403样品。

使用重置方法重置DStore

重置(DStore);

ReadSize200年一次。

DStore。ReadSize = 200;

从数据存储读取两次推进阅读位置的401样品。

读(DStore);读(DStore);

ReadSize5一次。

DStore。ReadSize = 5;

从数据存储读取。

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

提取多个样品

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

重置数据存储。

重置(DStore)

推进1001年样本。

DStore。ReadSize = 200;我= 1:5读(DStore);结束

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

DStore。ReadSize = 20;

1001年到1020年提取样品。提取的数据存储在一个变量命名targetSamples

targetSamples =阅读(DStore)
targetSamples = 20 x1时间表时间数据________ ________ 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 1.5988 - 9.8 9.79 1.605 - 9.81 1.6184 - 9.84秒1.6101 9.82秒1.6145 - 9.83秒秒1.6049 9.85秒1.595 - 9.86秒1.5877 9.87秒1.5824 9.88秒1.5785 1.5757 9.89秒

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

重置数据存储。

重置(DStore)

写一个循环,使用hasdata方法,逐步分析200个样本的数据块。

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

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

runningMax
runningMax = 1.6423

版本历史

介绍了R2017a

另请参阅