主要内容

将记录数据转换为数据集格式

将工作区数据转换为数据集

这个例子展示了如何转换MATLAB®时间序列数据到数据集格式。myvdp_时间序列vdp模型有两个到工作空间为配置的块simout西蒙1以MATLAB timeseries格式记录数据。如果使用模型,请考虑使用这样的过程。到工作空间将数据记录为MATLAB timeseries格式的块。

使用金宝appSimulink.SimulationData.Dataset构造函数将MATLAB timeseries数据转换为数据集格式化并连接两个数据集。

  1. vdp模型,添加两个到工作空间块到模型,如图所示。

  2. 设置保存格式两个块的参数。集Timeseries

  3. 将模型另存为myvdp_时间序列

  4. 模拟模型。

    模拟日志数据使用到工作空间阻碍。

  5. 访问信号记录格式,罗格苏特

    罗格苏特
    Simulink. 金宝appsimulationdata . dataset Package: Simulink. log out = Simulink. 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
  6. 转换MATLAB时间序列数据从两者到工作空间阻止数据集

    ds = 金宝appSimulink.SimulationData.Dataset (simout);ds1 = 金宝appSimulink.SimulationData.Dataset (simout1);

    ds是第一个变量的变量名到工作空间块数据。ds1是第二个变量的名称吗到工作空间块数据。

  7. 将两个数据集连接到dsfinal. 请注意dsfinal罗格苏特

    dsfinal = ds.concat (ds1)
    dsfinal=Si金宝appmulink.SimulationData.Dataset包:Simulink.SimulationData特性:名称:“simout”元素总数:2个元素:1:“x1”2:“x2”-使用get或getElement按索引或名称访问元素-使用addElement或setElement添加或修改元素。方法,超类

将没有时间的结构转换为数据集

此示例演示如何将没有时间数据的结构转换为数据集格式。myvdp_结构vdp模型有两个到工作空间以结构格式配置用于simout和simout1测井数据的块,如图所示。

如果你有模型使用到工作空间将数据记录到结构格式的块,考虑使用像这样的过程将它们转换为数据集格式。

  1. vdp模型,添加两个到工作空间块到模型,如图所示。

  2. 保存格式参数,选择结构

  3. 为发送至两个传感器的两个信号启用信号记录到工作空间要登录的块Ds格式。

  4. 将模型另存为myvdp_结构

  5. 模拟模型。

    模拟日志数据使用到工作空间阻碍。

  6. 将结构数据从两者转换到工作空间阻止数据集

    ds = 金宝appSimulink.SimulationData.Dataset (simout);ds1 = 金宝appSimulink.SimulationData.Dataset (simout1);

    simout是第一个变量的变量名到工作空间块数据。西蒙1是第二个变量的名称吗到工作空间块数据。

    在没有时间或数组的结构转换中,时间从t=0开始,每次递增1。

  7. 获取第一个元素的值ds

    ds.get (1) .Values.Time
    ans=0 1 2 3。61 62 63
  8. 从信号记录中获取第一个元素的时间值。

    logsout.get(1.Values.Time)
    Ans = 0 0.0001 0.0006 0.0031…19.2802 19.6802 20.0000
  9. 观察时间戳上的差异

    • 在没有转换时间的结构中记录的数据数据集格式

    • 登录的数据数据集格式

以编程方式访问记录的数据集格式数据

当您使用默认值时数据集信号记录格式金宝app®将日志数据保存在金宝appSimulink.SimulationData.Dataset对象。有关从该对象提取信号数据的信息,请参见金宝appSimulink.SimulationData.Dataset参考页。

金宝appSimulink.SimulationData.Dataset对象包含金宝appSimulink.SimulationData.Signal对象,用于每个记录的信号。

对于总线信号金宝appSimulink.SimulationData.Signal对象包含MATLAB的一个结构timeseries对象。

金宝appSimulink.SimulationData.Dataset类提供了访问信号记录数据及其相关信息的两个方法。

的名字

描述

得到

你也可以用thegetElement方法,该方法与得到方法。

根据索引、名称或块路径从数据集获取元素或元素集合。

numElements

获取数据集中元素的数量。

例如,访问信号测井数据使用数据集格式,请参阅金宝appSimulink.SimulationData.Dataset

总线信号记录数据的存取阵列

总线阵列使用的信号记录数据数据集信号记录格式。

访问总线阵列中特定信号的数据的一般方法是:

  1. 使用一个金宝appSimulink.SimulationData.Dataset.get(或getElement方法访问记录数据中的特定信号(默认情况下罗格苏特变量)。

  2. 要获取值,请在总线数组中建立索引。

  3. 再次索引以获取特定总线的数据。

例如,为了获得ex_log_nested_aob模型,用于topBus向终端块馈电的信号:

logsout.getElement (topBus) .Values.a .firstConst.data (2, 2)

下面是访问总线阵列信号记录数据的其他示例。有关显示如何记录总线阵列数据的另一个示例,请参阅sldemo_mdlref_总线

简单总线阵列

总线中的总线数组

嵌套总线数组

访问具有重复名称的信号的数据

对于具有具有相同信号名称的多个信号的模型,信号测井数据包括金宝appSimulink.SimulationData.Signal对象,用于具有重复名称的每个信号。

要访问具有重复名称的特定信号,请使用一个其中:

  • 要找到特定信号的数据,可以直观地检查显示的输出金宝appSimulink.SimulationData.Signal对象。

  • 使用金宝appSimulink.SimulationData.Dataset.getElement方法,指定信号的源块的块路径。

  • 要迭代具有重复信号名称的信号,使用金宝appSimulink.SimulationData.Dataset.getElement方法的索引参数。

  • 使用“信号属性”对话框指定一个不同的名称。当具有重复名称的信号在普通模式下没有出现在被引用模型的多个实例中时,请考虑使用这种方法。

    1. 在模型中,右键单击信号。

    2. 在上下文菜单中,选择属性

    3. 在“信号属性”对话框中,设置日志的名字习俗并指定一个与信号名称不同的名称。

    4. 模拟模型并使用金宝appSimulink.SimulationData.Dataset.getElement方法的名称参数。

提示

或者,您可以使用信号记录选择器访问特定信号。有关详细信息,请参阅覆盖信号记录设置与信号记录选择器

信号测井数据中换行符的处理

在使用数据集格式,使用sprintf指挥getElement呼叫例如:

topOut.getElement (sprintf (“增量\ nBUS”))

另请参阅

相关话题