文档

日志数据的数据集转换

为什么要转换为数据集格式?

您可以使用金宝appSimulink.SimulationData.Dataset构造函数转换一个MATLAB®工作区变量,该变量包含以这些格式之一记录到的数据数据集格式:

  • 数组

  • 结构

  • 有时间的结构

  • MATLAB timeseries

  • ModelDataLogs

从其他Simulink转换数据金宝app®日志记录格式为数据集格式简化了编写脚本以记录后处理数据。例如,一个模型有多个到工作空间块可以使用不同的数据格式。将日志数据转换为数据集Format避免了编写特殊代码来处理不同格式的需要。

不同的模拟模式对数据日志格式具有不同的支持级别。金宝app在普通模式和加速模式之间切换可能需要更改所使用的日志记录格式。

转换为数据集格式还可以更容易地利用所需的特性数据集格式。您可以轻松地转换在使用其他格式的早期版本中记录的数据数据集与…合作愉快数据集最新发布的数据。

数据集格式:

  • 使用MATLABtimeseries对象来存储日志数据,这允许您在MATLAB中使用日志数据,而无需Simulink许可证。金宝app例如,要操作记录的数据,可以使用MATLAB时间序列方法,例如过滤器去趋势,重新取样

  • 金宝app支持记录给定时间步长的多个数据值,这对Iterator子系统和Stateflow很重要®日志记录的信号。

默认情况下,生成的数据集对象使用变量名作为其名称。可以使用名称-值对指定数据集的名字。

您可以使用金宝appSimulink.SimulationData.Dataset.concat组合方法数据集对象连接成一个数据集对象。

转换结果

数据集对象以元素的形式保存数据。的元素数据集变量,在MATLAB命令提示符输入变量名。的元素数据集对象的类型不同,取决于它们所存储的数据。例如,信号日志将数据存储为金宝appSimulink.SimulationData.Signal元素和状态登录数据集格式将数据存储为金宝appSimulink.SimulationData.State元素。每个元素以MATLAB时间序列对象的形式保存数据。在转换时,元素和时间序列字段尽可能从转换的对象中填充。

格式 转换结果说明

MATLAB时间序列

如果记录非总线数据,在转换期间,软件首先将数据添加为金宝appSimulink.SimulationData.Signal对象。然后将该对象作为新创建的元素添加数据集

如果以时间序列格式记录总线数据,则一个时间序列对应于总线的每个元素。转换将记录的数据安排为一个结构,时间序列对象作为叶节点。此结构层次结构与总线层次结构相匹配。时间序列对象的这种类型结构的转换将整个结构添加到金宝appSimulink.SimulationData.Signal对象。然后将该对象作为数据集的一个元素添加。

时间序列对象保存相关信息,如块路径和时间戳。转换试图保存此信息。

结构和结构随时间而变化

结构和带有时间格式的结构并不总是包含像登录时那样多的信息数据集格式。但是,在用时间格式转换结构和结构之前,数据结构必须具有时间而且信号字段。

转换填充一个金宝appSimulink.SimulationData.Signal对象,并将其添加为数据集的一个元素。如果有其他可用的信息,转换也会将其添加到元素或时间序列值中。例如,如果该结构有一个名为blockName,转换将其添加到块路径中。否则,块路径为空。

当以结构格式记录范围数据时,记录的结构具有PlotStyle字段。软件使用该字段设置插值数据集对象。

数组

数组包含的信息很少。例如,没有块路径信息。

转换将数组添加到金宝appSimulink.SimulationData.Signal对象的元素并将其添加为数据集对象。这种转换会留下不可用的信息,比如块路径和时间戳字段,它们要么为空,要么具有默认值。

ModelDataLogs

转换数据ModelDataLogs格式数据集格式。

请注意

ModelDataLogs格式不再用于信号记录。

数据集转换的限制

  • 将日志数据转换为数据集格式将导致数据集对象,该对象包含原始日志数据所包含的所有信息。但是,如果没有其他相应的信息数据集属性,则转换使用该信息的默认值。

  • 要记录可变大小的信号,请使用到工作空间块。如果将记录在“到工作区”中的数据转换为数据集格式,则会丢失有关可变大小信号的信息。

  • 当您在具有时间格式的数组、结构或结构中记录总线信号时,记录的数据按以下方式组织:

    • 包含总线中第一个信号的数据的第一列

    • 第二列包含第二个总线信号的数据,以此类推

    当您将数据转换为数据集,数据集保持组织。但如果你把总线信号输入数据集格式而不需要转换,转换将总线数据捕获为时间序列对象的结构。

  • 如果日志数据不包括时间向量,则将该数据转换为数据集,转换插入一个时间向量。每个数据值都有一个时间步长。然而,模拟的时间步长和数据集时间步骤可以有所不同。

  • 数据集格式忽略了帧信号的规范。结构或结构与时间数据的转换数据集为记录的帧信号重塑数据。

另请参阅

相关的话题