本页对应的英文页面已更新,但尚未翻译。 若要查看最新内容,请点击此处访问英文页面。

Simulink.MDLInfo 类

包: Simulink
超类:

在不将模块图加载到内存中的情况下提取模型文件信息

说明

类 Simulink.MDLInfo 可在不将模块图加载到内存中的情况下从模型文件提取信息。

您可以创建包含所有模型信息属性的 MdlInfo 对象,或者使用静态方法来方便地访问各个属性而无需先创建类。例如,要仅获取说明:

description = Simulink.MDLInfo.getDescription('mymodel')

仅获取元数据:

metadata = Simulink.MDLInfo.getMetadata('mymodel')

所有模型信息属性都是只读的。

构造

info = Simulink.MDLInfo('mymodel') 创建 MdlInfo 类的实例 info,并使用模型文件 'mymodel' 中的信息填充属性。

mymodel 可以是:

  • 模块图名称(例如 vdp

  • MATLAB® 路径中的文件的文件名(例如 mymodel.slx

  • 相对于当前文件夹的文件名(例如 mydir/mymodel.slx

  • 完全限定文件名(例如 C:\mydir\mymodel.slx

Simulink.MDLInfo 通过查看 MATLAB 路径中的文件来解析所提供的名称,并忽略内存中的任何模块图。如果您提供已加载模型的名称,但其文件被 MATLAB 路径中的另一个文件隐蔽,这可能导致意外结果。如果文件被隐蔽,您将在命令行窗口中看到一条警告。为避免混淆,请为 Simulink.MDLInfo 提供完全限定的文件名。

属性

BlockDiagramName

模块图的名称。

BlockDiagramType

模块图的类型。例如,'Model'、'Subsystem'、'Library'。

Description

模型的 Description 参数。有关详细信息,请参阅版本信息属性

FileFormatMinorVersion

仅在涉及 Simulink® 的 Service Pack 版本时包含相应的值。如果 Service Pack 包含对模型文件格式的更改,则指示该文件由该 Service Pack 版本保存。

FileName

模型文件的完全限定名称。

Interface

模块图的根输入端口、输出端口、模型引用等的名称和属性,用于描述图形界面(如果您从此模型创建了 Model Reference 模块)。

结构体。

IsLibrary

模块图是否为库。逻辑值。

LastModifiedBy

上次保存模型的用户的名称。

LastSavedArchitecture

进行保存时的平台架构,例如 'glnxa64'

Metadata

与模型有关的任意数据的名称和值。

结构体。结构体字段可以是字符向量、双精度类型的数值矩阵或结构体。使用方法 getMetadata 可在不加载模型的情况下提取此元数据结构体。

ModelVersion

模型文件版本号。

ReleaseName

用于保存模型文件的 Simulink 的版本名称,例如 'R2016a'

SavedCharacterEncoding

进行保存时的字符编码,例如 'UTF-8'

SimulinkVersion

用来保存模型文件的 Simulink 软件的版本号。

方法

getDescriptionExtract model file description without loading block diagram into memory
getMetadataExtract model file metadata without loading block diagram into memory

复制语义

句柄。要了解这对类的使用有何影响,请参阅 MATLAB 编程基础文档中的复制对象 (MATLAB)。

示例

构造并查看模型信息对象:

info = Simulink.MDLInfo('mymodel')
% Get the Version when the model was saved
simulink_version = info.SimulinkVersion; 
% Get model metadata
metadata = info.metadata

要向模型添加元数据,请创建包含所需信息的元数据结构体,然后使用 set_param 将其附加到模型中。例如:

  metadata.TestStatus = 'untested';
  metadata.ExpectedCompletionDate
     = '01/01/2011';
  load_system(mymodelname);
  set_param(mymodelname,'Metadata',...
  metadata)  % must be a struct
  save_system(mymodelname);
  close_system(mymodelname);

为名为 mpowertrain 的模型构造一个模型信息对象,以查找引用模型的名称,而无需将模型加载到内存中:

info = Simulink.MDLInfo('mpowertrain')
% Get the Interface property
info.Interface

输出:

ans = 
                   Inports: [0x1 struct]
                  Outports: [0x1 struct]
                 Trigports: [0x1 struct]
                 Connports: [0x1 struct]
              ModelVersion: '1.122'
           ModelReferences: {2x1 cell}
    ParameterArgumentNames: ''
        TestPointedSignals: [0x1 struct]

获取引用模型:

 info.Interface.ModelReferences

输出的格式为 model name / block path | referenced model name

ans = 
    'mpowertrain/Model Variants|manual_transmission'
    'mpowertrain/engine model|menginemodel'