主要内容

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

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

此示例显示了如何转换Matlab®时间序列数据数据集格式。myvdp_timeseries是个VDP带有两个模型到工作区配置的块模拟simout1以MATLAB时间的格式记录数据。如果您有使用的模型,请考虑使用这样的程序到工作区块到将数据记录到MATLAB时段格式。

使用金宝appsimulink.simulationdata.dataset将MATLAB次数数据转换为构造函数数据集格式化,然后加入两个数据集。

  1. VDP型号,添加两个到工作区如图所示。

  2. 设置保存格式两个块的参数。放时间序列

  3. 将模型保存为myvdp_timeseries

  4. 模拟模型。

    模拟日志数据使用到工作区块。

  5. 访问信号记录格式,登录

    登录
    logSout = 金宝appsimulink.simulationdata.dataset软件包:simulink.simulationdata特征:名称:'logSout'总元素:2元素:1:'x1'2:'x2' - 用index或name使用访问或获取访问元素。- 使用addElement或setElement添加或修改元素。方法,超类
  6. 将MATLAB时间序列数据从两者转换到工作区块到数据集

    ds = 金宝appsimulink.simulationdata.dataset(simout);ds1 = 金宝appsimulink.simulationdata.dataset(simout1);

    DS是第一个的变量名称到工作区块数据。DS1是第二个名称到工作区块数据。

  7. 将两个数据集加入到dsfin。观察格式dsfin与之匹配登录

    dsfinal = ds.concat(DS1)
    dsfinal = 金宝appsimulink.simulationdata.dataset软件包:simulink.simulationdata特征:名称:'simout'总元素:2个元素:1:'x1'2:'x2' - 用index或name使用访问或获取访问元素。- 使用addElement或setElement添加或修改元素。方法,超类

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

此示例显示了如何在没有时间数据的情况下将结构转换为数据集格式。myvdp_structure是个VDP带有两个模型到工作区如图所示,为SIMOUT和SIMOUT1配置的块以结构格式记录数据。

如果您有使用的模型到工作区块以记录数据以结构格式,请考虑使用这样的过程将其转换为数据集格式。

  1. VDP型号,添加两个到工作区如图所示。

  2. 在里面保存格式两个块的参数,选择结构

  3. 启用信号记录的两个信号到两个信号到工作区登录的块DS格式。

  4. 将模型保存为myvdp_structure

  5. 模拟模型。

    模拟日志数据使用到工作区块。

  6. 将两者转换为结构数据到工作区块到数据集

    ds = 金宝appsimulink.simulationdata.dataset(simout);ds1 = 金宝appsimulink.simulationdata.dataset(simout1);

    模拟是第一个的变量名称到工作区块数据。simout1是第二个名称到工作区块数据。

    在没有时间或数组的结构转换的情况下,时间始于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. 观察时间戳之间的差异

    • 在没有时间转换为的时间内记录的数据数据集格式

    • 登录数据数据集格式

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

当您使用默认值时数据集信号记录格式,Simulink金宝app®将记录数据保存在金宝appsimulink.simulationdata.dataset目的。有关从该对象提取信号数据的信息,请参阅金宝appsimulink.simulationdata.dataset参考页。

金宝appsimulink.simulationdata.dataset对象包含一个金宝appsimulink.simulationdata.signal每个记录信号的对象。

对于巴士信号,金宝appsimulink.simulationdata.signal对象包含MATLAB的结构时间序列对象。

金宝appsimulink.simulationdata.dataset类提供两种用于访问信号记录数据及其相关信息的方法。

姓名

描述

得到

您也可以使用getelement方法,共享语法和行为作为得到方法。

根据索引,名称或块路径获取数据集中的元素或元素收集。

数字

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

例如访问使用信号记录数据的数据集格式,请参阅金宝appsimulink.simulationdata.dataset

访问一系列巴士信号记录数据

一系列公共汽车使用的信号记录数据数据集信号记录格式。

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

  1. 用一个金宝appsimulink.simulationdata.dataset.get(或者getelement)在已记录数据中访问特定信号的方法(默认情况下,登录多变的)。

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

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

例如,获取在该中的常数6块的信号记录数据EX_LOG_NESTED_AOB模型,用于topbus供电终结器块的信号:

logSout.getElement('topbus')。values.a(2,2).firstconst.data

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

简单的公共汽车阵列

公共汽车中的一系列公共汽车

嵌套的公共汽车阵列

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

对于具有具有相同信号名称的多个信号的模型,信号记录数据包括一个金宝appsimulink.simulationdata.signal每个具有重复名称的信号的对象。

要访问具有重复名称的特定信号,请使用这些方法:

  • 要查找特定信号的数据,请视觉检查显示的显示的输出金宝appsimulink.simulationdata.signal对象。

  • 使用金宝appsimulink.simulationdata.dataset.getElement方法,指定信号源块的块路径。

  • 要用重复的信号名称通过信号迭代,请使用金宝appsimulink.simulationdata.dataset.getElement具有索引参数的方法。

  • 使用“信号属性”对话框指定其他名称。当具有重复名称的信号在正常模式下的多个实例中不会出现时,请考虑使用此方法。

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

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

    3. 在“信号属性”对话框中,设置记录名称风俗并指定与信号名称不同的名称。

    4. 模拟模型并使用金宝appsimulink.simulationdata.dataset.getElement具有名称参数的方法。

小费

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

在信号记录数据中处理newline字符

在信号记录数据中以记录名称的记录名称中的newline字符使用数据集格式,使用Sprintf命令agetelement称呼。例如:

topout.getElement(sprintf(sprintf)(“增量\ nbus”))

也可以看看

相关话题