将日志数据转换为数据集格式
将工作区数据转换为数据集
这个例子展示了如何转换MATLAB®时间序列数据数据集
格式。myvdp_timeseries
是vdp
带2的模型到工作空间模块配置simout和simout1记录数据在MATLAB时间序列格式。如果您有使用的模型,请考虑使用这样的过程到工作空间块将数据记录为MATLAB时间序列格式。
使用万博1manbetxSimulink.SimulationData.Dataset
构造函数将MATLAB时间序列数据转换为数据集
格式化,然后连接两个数据集。
从
vdp
模型,添加两个到工作空间块到模型中,如图所示。设置保存格式两个块的参数。集
Timeseries
.将模型保存为
myvdp_timeseries
.模拟模型。
仿真使用To Workspace块记录数据。
访问信号记录格式,
logsout
.logsout
logsout = 万博1manbetxSimulink. simulationdata . dataset Package: Simulink。模拟Data Characteristics: Name: 'logsout' Total Elements: 2 Elements: 1: 'x1' 2: 'x2' -Use get or getElement to access elements by index or name. -Use addElement or setElement to add or modify elements. Methods, Superclasses
将MATLAB时间序列数据从两个To Workspace块转换为
数据集
.ds = 万博1manbetxSimulink.SimulationData.Dataset(simout);ds1 = 万博1manbetxSimulink.SimulationData.Dataset(simout1);
ds是第一个To Workspace块数据的变量名。ds1的是第二个To Workspace块数据的变量名。
将两个数据集连接到dsfinal.的格式dsfinal匹配
logsout
.Dsfinal = ds.concat(ds1)
dsfinal = 万博1manbetxSimulink. simulationdata . dataset Package: Simulink。模拟Data Characteristics: Name: 'simout' Total Elements: 2 Elements: 1: 'x1' 2: 'x2' -Use get or getElement to access elements by index or name. -Use addElement or setElement to add or modify elements. Methods, Superclasses
转换结构没有时间到数据集
这个例子展示了如何将没有时间数据的结构转换为数据集
格式。myvdp_structure
是vdp
带2的模型到工作空间为simout和simout1配置的块以结构格式记录数据,如下所示。
如果你的模型使用到工作空间将日志数据转换为结构格式的块,请考虑使用类似于此的过程将它们转换为数据集
格式。
从
vdp
模型,添加两个到工作空间块到模型中,如图所示。在保存格式两个块的参数,选择
结构
.为两个发送到两个的信号启用信号记录到工作空间登录块
Ds
格式。将模型保存为
myvdp_structure
.模拟模型。
仿真使用To Workspace块记录数据。
将结构数据从两个To Workspace块转换为
数据集
.ds = 万博1manbetxSimulink.SimulationData.Dataset(simout);ds1 = 万博1manbetxSimulink.SimulationData.Dataset(simout1);
simout是第一个To Workspace块数据的变量名。simout1是第二个To Workspace块数据的变量名。
在没有时间或数组的结构转换中,时间从t=0开始,增量为1。
中第一个元素的值ds.
ds.get (1) .Values.Time
Ans = 0 1 2 3…61 62 63
从信号记录中获取第一个元素的时间值。
logsout.get (1) .Values.Time
Ans = 0 0.0001 0.0006 0.0031…19.2802 19.6802 20.0000
观察时间戳之间的差异
记录在结构中的数据,没有转换为的时间
数据集
格式登录数据
数据集
格式
以编程方式访问记录的数据集格式数据
当您使用默认值时数据集
信号记录格式,Simulink万博1manbetx®将日志数据保存为万博1manbetxSimulink.SimulationData.Dataset
对象。有关从该对象提取信号数据的信息,请参见
参考页面。万博1manbetxSimulink.SimulationData.Dataset
的万博1manbetxSimulink.SimulationData.Dataset
对象包含
对象来获取每个记录的信号。万博1manbetxSimulink.SimulationData.Signal
对于总线信号万博1manbetxSimulink.SimulationData.Signal
对象包含了MATLAB的一个结构
对象。timeseries
的万博1manbetxSimulink.SimulationData.Dataset
类提供了两种方法,用于访问信号记录数据及其相关信息。
名字 |
描述 |
---|---|
你也可以用 |
根据索引、名称或块路径从数据集中获取元素或元素集合。 |
获取数据集中元素的个数。 |
方法访问信号记录数据的示例数据集
格式,请参阅
.万博1manbetxSimulink.SimulationData.Dataset
总线信号记录数据访问阵列
一组总线使用的信号记录数据数据集
信号记录格式。
在一组总线中访问特定信号数据的一般方法是:
使用一个
万博1manbetxSimulink.SimulationData.Dataset.get
(或getElement
方法来访问日志数据中的特定信号(默认情况下logsout
变量)。要获取这些值,请在总线数组内进行索引。
再次索引以获取特定总线的数据。
例如,获取Constant6块的信号记录数据ex_log_nested_aob
模型,用于topBus
信号馈送终结者块:
logsout.getElement (topBus) .Values.a .firstConst.data (2, 2)
下面是访问总线信号记录数据数组的其他示例。有关显示如何记录总线数据数组的另一个示例,请参见sldemo_mdlref_bus
.
访问具有重复名称的信号的数据
对于具有多个具有相同信号名称的信号的模型,信号记录数据包括一个万博1manbetxSimulink.SimulationData.Signal
为具有重复名称的每个信号创建。
要访问具有重复名称的特定信号,请使用一个在这些方法中:
要找到特定信号的数据,目视检查显示的输出
万博1manbetxSimulink.SimulationData.Signal
对象。使用
万博1manbetxSimulink.SimulationData.Dataset.getElement
方法,指定信号源块的块路径。要使用重复的信号名称遍历信号,请使用
万博1manbetxSimulink.SimulationData.Dataset.getElement
方法,并带有索引参数。使用“信号属性”对话框指定不同的名称。在正常模式下,当具有重复名称的信号没有出现在引用模型的多个实例中时,请考虑使用此方法。
在模型中,右键单击信号。
在上下文菜单中,选择属性.
在“信号属性”对话框中设置日志的名字来
自定义
并指定与信号名称不同的名称。模拟模型并使用
万博1manbetxSimulink.SimulationData.Dataset.getElement
带有名称参数的方法。
提示
或者,您可以使用信号日志选择器来访问特定的信号。有关详情,请参阅用信号记录选择器覆盖信号记录设置.
处理信号记录数据中的换行字符
在使用的信号日志数据中处理日志名称中的换行符数据集
格式,使用sprintf
中的命令getElement
调用。例如:
topOut.getElement (sprintf (“增量\ nBUS”))
另请参阅
万博1manbetxSimulink.SimulationData.Dataset