主要内容

本页采用了机器翻译。点击此处可查看最新英文版本。

slreportgen.finder.EnumerationTypeFinder 类

命名空间: slreportgen.finder

查找 Simulink 模型中使用的枚举数据类型

自 R2023b 起

描述

使用 slreportgen.finder.EnumerationTypeFinder 类的对象来查找 Simulink® 模型或子系统中使用了哪些枚举数据类型。

slreportgen.finder.EnumerationTypeFinder 类是 handle 类。

类属性

HandleCompatible
true

有关类属性的信息,请参阅类属性

创建对象

描述

finder = slreportgen.finder.EnumerationTypeFinder(container) 创建一个查找器,用于查找指定 container 中使用的变量,该查找器可以是 Simulink 模型或子系统。请参阅 Container属性。要指定容器,请使用 Simulink 模型或子系统模块路径或句柄。您可以通过设置查找器的属性将搜索限制到特定的枚举类型名称、用户或工作区类型。使用 findnext 方法让查找器执行搜索。

注意

此查找器提供了以下选项来获取搜索结果:

  • 要将搜索结果作为数组返回,请使用 find 方法。将结果直接添加到报告中或在 for 循环中处理结果。

  • 要逐个迭代结果,请在 while 循环中使用 hasNextnext 方法。

这两个选项在性能上都没有优势。

finder = slreportgen.finder.EnumerationTypeFinder(Name=Value) 使用一个或多个名称-值参量设置 属性。您可以按任意顺序指定多个名称-值参量。

示例

属性

全部展开

要搜索的模型或子系统,指定为包含模型或子系统路径的字符串标量或字符向量,或者指定为模型或子系统的句柄。

属性:

GetAccess
公共
SetAccess
公共

要查找的枚举类型名称,指定为字符向量或字符串标量。如果不指定名称,则枚举类型不会根据名称属性进行过滤。如果 Regexp 设置为 true,则此属性可以包含正则表达式。

属性:

GetAccess
公共
SetAccess
公共

数据类型: string | char

要查找的系统名称,指定为字符向量或字符串标量(指定单个系统),或字符串数组或元胞数组(指定多个系统/图)。查找器返回此属性中指定的模型或图所使用的枚举类型。如果 Regexp 属性的值为 true,则查找器将此属性中的用户名视为正则表达式,并返回名称与正则表达式匹配的系统使用的枚举类型。如果该属性为空,查找器不会根据用户过滤枚举类型。

属性:

GetAccess
公共
SetAccess
公共

数据类型: string | char

定义枚举数据类型的源工作区类型,指定为以下值之一。

源类型描述
"all"查找器会查找所有枚举类型,无论它们是在何种源类型中指定的。
"MATLAB file"查找器仅查找在 MATLAB® 文件中指定的枚举类型。
"dynamic class"查找器仅查找那些动态指定的枚举类型。当使用函数 Simulink.defineIntEnumType 定义枚举类型时,它会被动态定义。使用此函数,您可以指定在 MATLAB 外部定义的枚举类型,以便导入到 Simulink 环境中使用。
"data dictionary"查找器仅查找数据字典中指定的枚举类型。

属性:

GetAccess
公共
SetAccess
公共

数据类型: char | string

要查找的 Simulink.VariableUsage 对象的属性,指定为由名称-值参量组成的元胞数组。查找器仅返回关联的 Simulink.VariableUsage 对象具有指定属性值的枚举数据类型。

示例: finder.Properties = {"SourceType","MATLAB file"}

属性:

GetAccess
公共
SetAccess
公共

数据类型: cell

是否匹配正则表达式, 指定为 "on""off",或指定为数值或逻辑值 1 (true) 或 0 (false)。值 "on" 等同于 true,而 "off" 等同于 false。因此,您可以将此属性的值用作逻辑值。该值以类型为 matlab.lang.OnOffSwitchState. 的 on/off 逻辑值存储。

  • “on” - 启用对 NameSourceTypeUsers 属性的值进行正则表达式匹配。

  • "off" - 禁用正则表达式匹配。

有关正则表达式的详细信息,请参阅 正则表达式

属性:

GetAccess
公共
SetAccess
公共

模型的编译状态,指定为以下值之一。

描述
"compiled"通过在搜索之前编译模型来获取最新的结果。
"cached"通过使用上次编译时缓存的数据更快地获得结果。

是否在引用模型中搜索,指定为数值或逻辑值 1 (true) 或 0 (false)。您可以在模型引用的模型或由 Container 属性表示的模块引用的模型中进行搜索。当 SearchReferencedModels 为 true 时:

  • 查找器仅搜索搜索深度内的引用模型。

  • 查找器将搜索引用模型到 SearchDepth 指定的深度,而不管包含引用模型的模块的深度是多少。

  • 查找器搜索被引用模型所引用的模型。

注意

您还可以使用 SearchReferencedModels"off" 设置 "on" 属性。

属性:

GetAccess
公共
SetAccess
公共

数据类型: logical

方法

全部展开

示例

全部折叠

此示例向您展示如何将模型中的枚举类型添加到报告中。

创建 Simulink 报告。

rpt = slreportgen.report.Report("MyReport","pdf");

创建一个章节。

chapter = mlreportgen.report.Chapter();
chapter.Title = "EnumerationType Example";

加载模型。

model_name = "slrgex_datatypedemo";
load_system(model_name);

创建一个枚举类型查找器并设置其属性来限制搜索。

finder = slreportgen.finder.EnumerationTypeFinder(model_name);
finder.SourceType = "MATLAB file";

查找模型使用的枚举类型。

results = find(finder);

将结果添加到章节中。

append(chapter,results);

在报告中添加章节。

append(rpt,chapter);

关闭并查看报告。

close(rpt);
rptview(rpt);

此示例演示了如何查找以 Sl 开头并以 Sign 结尾的枚举类型。

加载模型。

model_name = "slrgex_datatypedemo";
load_system(model_name)

创建一个枚举类型查找器。

finder = slreportgen.finder.EnumerationTypeFinder(model_name);

启用正则表达式匹配。

finder.Regexp = true;

使用正则表达式 ^Sl\w*Sign$ 将搜索范围限制为以 Sl 开头且以 Sign 结尾的结果。

finder.Name = "^Sl\w*Sign$";

查找模型使用的匹配枚举类型。

results = find(finder)
results = 
  EnumerationTypeResult with properties:

        Object: [1×1 Simulink.VariableUsage]
          Name: "SlDemoSign"
        Source: "SlDemoSign.m"
    SourceType: "MATLAB file"
         Users: "slrgex_datatypedemo"
           Tag: []

版本历史记录

在 R2023b 中推出