Main Content

Simulink.ModelDataLogs

(不推荐)访问使用 ModelDataLogs 格式记录的数据的信号数据日志

    使用 ModelDataLogs 格式记录和加载数据的功能已删除。请改用其他受支持的格式,如数据集格式。有关详细信息,请参阅兼容性注意事项

    说明

    Simulink.ModelDataLogs 对象包含从使用 ModelDataLogs 格式记录数据的模型中的仿真记录的所有数据。

    创建对象

    在 R2016a 之前,您可以将模型配置为使用 ModelDataLogs 格式记录数据。对信号记录格式参数设置为 ModelDataLogs 的模型进行仿真会创建一个 Simulink.ModelDataLogs 对象,其中包含所有记录的信号数据。您可以使用信号记录名称参数指定 ModelDataLogs 对象的名称。

    属性

    全部展开

    记录的数据属性

    Simulink.ModelDataLogs 对象包含从仿真中记录的信号数据的属性。包含所记录数据的属性的数量、类型和名称取决于模型的结构体和记录配置。

    属性名称源记录的数据源
    模型名称顶层模型或模型引用Simulink.ModelDataLogs
    子系统名称SubsystemSimulink.SubsysDataLogs
    信号名称信号Simulink.Timeseries
    复路或虚拟总线名称复路或虚拟总线Simulink.TSArray
    总线对象非虚拟总线Simulink.TSArray

    ModelDataLogs 对象中的 ModelDataLogsSubsysDataLogs 对象的层次结构与模型的层次结构匹配。总线的 Simulink.TSArray 对象的层次结构与总线层次结构匹配。

    模型属性

    模型或 Model 模块名称,以字符向量形式返回。对于顶层模型,Name 属性值是模型的名称。对于引用模型,Name 属性值是引用该模型的 Model 模块的名称。

    对象函数

    convertToDataset(Not recommended) Convert data logged using ModelDataLogs format to Dataset format
    unpack(Not recommended) Extract signal data from ModelDataLogs, SubsysDataLogs, or TSArray object into workspace variables
    who(Not recommended) List names of objects inside ModelDataLogs, SubsysDataLogs, or TSArray object
    whos(Not recommended) List name and type of objects inside ModelDataLogs, SubsysDataLogs, or TSArray object

    示例

    全部折叠

    当记录的信号有以下情形时,ModelDataLogs 对象中的属性名称可以包含空格或换行符:

    • 其名称包含空格或换行符

    • 未命名,且源于名称中包含空格或换行符的模块

    • 存在于子系统或引用模型中,并且子系统、Model 模块或模型层次结构中任何上游模块的名称包含空格或换行符

    此模型记录其名称包含空格或换行符的信号。

    A model that contains three Sine Wave blocks connected to output ports with three signals marked for logging.

    logsout
    logsout =
     
    Simulink.ModelDataLogs (model_name):
      Name                   Elements  Simulink Class
    
      ('x y')                   1      Timeseries
      ('a
    b')                   1      Timeseries
      ('SL_Sine
    Wave1')         1      Timeseries

    您不能通过使用 Tab 键自动填充或在圆点后键入名称来访问 ModelDataLogs 对象的元素。MATLAB® 解析器将空格或换行符解释为标识符之间的分隔符。例如,以下代码会导致错误。

    logsout.x y
    
    ??? logsout.x y
                  |
    Error: Unexpected MATLAB expression.

    要访问名称中包含空格的元素,请用单引号将名称引起来。

    logsout.('x y')
           Name: 'x y'
         BlockPath: 'model_name/Sine'
         PortIndex: 1
        SignalName: 'x y'
        ParentName: 'x y'
          TimeInfo: [1x1 Simulink.TimeInfo]
              Time: [51x1 double]
              Data: [51x1 double]

    要访问名称中包含换行符的元素,请通过在适当位置串联换行符来构造元素名称。

    cr=sprintf('\n')
    logsout.(['a' cr 'b'])

    版本历史记录

    在 R2006a 之前推出

    全部展开

    R2022b: 不再支持加载以 ModelDataLogs 格式保存的数据

    从 R2022b 开始,您无法再加载以 ModelDataLogs 格式存储的数据,包括在 Simulink.TimeseriesSimulink.TSArraySimulink.SubsysDataLogs 对象中存储的数据。

    您可以将以 ModelDataLogs 格式存储的数据转换为数据集格式。有关详细信息,请参阅Convert Data to Dataset Format