Main Content

Simulink.MDLInfo

在不加载文件的情况下提取 SLX、SLXP 或 MDL 文件信息

说明

Simulink.MDLInfo 对象从 SLX、SLXP 或 MDL 文件中提取信息,而不将其加载到内存中。

要在不创建 MDLInfo 对象的情况下从文件中提取描述和元数据,请分别使用 Simulink.MDLInfo.getDescriptionSimulink.MDLInfo.getMetadata 函数。

创建对象

描述

示例

info = Simulink.MDLInfo(file) 创建名为 infoMDLInfo 对象,并用指定模型文件中的信息填充属性。

输入参量

全部展开

SLX、SLXP 或 MDL 文件的名称,指定为字符向量或字符串标量。

文件名可以包括部分路径、完整路径、相对路径或无路径。如果不提供路径,文件扩展名是可选的。

为避免共享同一名称的遮蔽文件导致意外结果,请指定完全限定的文件名。

示例: Simulink.MDLInfo('vdp')

示例: Simulink.MDLInfo('mymodel.slx')

示例: Simulink.MDLInfo('mydir/mymodel.slx')

示例: Simulink.MDLInfo('C:/mydir/mymodel.slx')

数据类型: char | string

属性

全部展开

文件名和内容

此 属性 为只读。

模块图的名称,以字符向量形式返回。

模块图的名称与文件名匹配,但没有扩展名。

数据类型: char

此 属性 为只读。

文件类型,以字符向量形式返回。

数据类型: char

此 属性 为只读。

完全限定的文件名,以字符向量形式返回。

数据类型: char

此 属性 为只读。

输入、输出和引用的描述,以结构体形式返回。

该结构体包括顶层端口、模型引用和子系统引用的名称和属性。

数据类型: struct

此 属性 为只读。

true 或 false 结果,以数据类型 logical10 形式返回。

  • 1 (true) - 文件是库。

  • 0 (false) - 文件不是库。

数据类型: logical

用户指定的信息

此 属性 为只读。

用户为文件指定的描述,以字符向量形式返回。

提示

  • 要在不加载模型或创建 MDLInfo 对象的情况下提取描述,请使用 Simulink.MDLInfo.getDescription 函数。

  • 要在不加载模型或创建 MDLInfo 对象的情况下查看描述,请在 MATLAB® 命令行窗口中输入:

    help 'mymodelname'

  • 要查看一个打开模型的描述,请在“模型属性”对话框中打开描述选项卡。

数据类型: char

此 属性 为只读。

与文件相关联的任意数据的名称和值,以结构体形式返回。

结构体字段可以是字符向量、double 类型的数值矩阵或结构体。

提示

要在不加载模型或创建 MDLInfo 对象的情况下提取元数据结构体,请使用 Simulink.MDLInfo.getMetadata 函数。

数据类型: struct

保存信息

此 属性 为只读。

用于保存文件的发行版更新,以正整数形式返回。

  • 0 - 文件保存在正式发行版中,例如,'R2020a',或保存在 R2020a 之前的版本中。

  • 正整数 - 文件保存在更新发行版中,例如,2 表示模型保存在 'R2020a Update 2' 中。

数据类型: int32

此 属性 为只读。

上次保存文件的用户的名称,以字符向量形式返回。

数据类型: char

此 属性 为只读。

用于保存文件的平台,以字符向量形式返回。

示例: 'glnxa64'

数据类型: char

此 属性 为只读。

文件的版本号,以字符向量形式返回。

数据类型: char

此 属性 为只读。

用于保存文件的 MATLAB 版本,以字符向量形式返回。

示例: 'R2020a'

数据类型: char

此 属性 为只读。

保存文件时的字符编码,以字符向量形式返回。

示例: 'UTF-8'

数据类型: char

此 属性 为只读。

用于保存文件的 Simulink 版本号,以字符向量形式返回。

示例: '10.1'

数据类型: char

示例

全部折叠

打开示例。然后,打开 vdp 模型。

open_system('vdp')

创建一个对应于 vdp.slx 文件的 Simulink.MDLInfo 对象。

info = Simulink.MDLInfo("vdp.slx");

通过使用圆点表示法来访问属性值,获取有关文件的信息,如文件类型。

type = info.BlockDiagramType
type = 
'Model'

打开 sldemo_mdlref_depgraph 模型。

openProject("ModelReferenceHierarchy");

获取有关 sldemo_mdlref_depgraph 模型的信息。

info = Simulink.MDLInfo('sldemo_mdlref_depgraph');

获取接口信息。

info.Interface
ans = struct with fields:
                       Inports: [0x1 struct]
                      Outports: [0x1 struct]
                     Trigports: [0x1 struct]
                   Enableports: [0x1 struct]
                   Actionports: [0x1 struct]
                    Resetports: [0x1 struct]
                     Connports: [0x1 struct]
                  ModelVersion: '9.0'
           SubsystemReferences: {0x1 cell}
               ModelReferences: {4x1 cell}
        ParameterArgumentNames: ''
            TestPointedSignals: [0x1 struct]
             ProvidedFunctions: [0x1 struct]
         IsExportFunctionModel: 0
         SimulinkSubDomainType: 'Simulink'
                   ResetEvents: [0x1 struct]
            DataStoreReference: [0x1 struct]
            HasInitializeEvent: 0
             HasTerminateEvent: 0
    PreCompExecutionDomainType: 'Unset'
             UseModelRefSolver: 0
                    SolverName: 'ode3'
            ParameterArguments: [0x1 struct]
         ExternalFileReference: [5x1 struct]

获取引用模型。

info.Interface.ModelReferences
ans = 4x1 cell
    {'sldemo_mdlref_depgraph/heat2cost|sldemo_mdlref_heat2cost'      }
    {'sldemo_mdlref_depgraph/house|sldemo_mdlref_house'              }
    {'sldemo_mdlref_depgraph/outdoor temp|sldemo_mdlref_outdoor_temp'}
    {'sldemo_mdlref_depgraph/thermostat|sldemo_mdlref_heater'        }

创建一个包含元数据的结构体。

t=datetime('tomorrow','format','MM/dd/yy');
m.ExpectedCompletionDate = t;
m.TestStatus = 'untested';

创建一个新模型。

new_system('MetadataModel')

更新 'Metadata' 参数。

set_param('MetadataModel','Metadata',m)

随元数据一起保存该模型。

save_system('MetadataModel')

在不加载该模型或创建 Simulink.MDLInfo 对象的情况下检查模型的元数据。

Simulink.MDLInfo.getMetadata('MetadataModel')
ans = struct with fields:
    ExpectedCompletionDate: 01/26/24
                TestStatus: 'untested'

版本历史记录

在 R2009b 中推出