主要内容

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

slreportgen.finder.ModelVariableFinder 类

命名空间: slreportgen.finder
超类: mlreportgen.finder.Finder

查找 Simulink 模型使用的变量

描述

使用类 slreportgen.finder.ModelVariableFinder 的对象查找 Simulink® 模型使用的变量。

slreportgen.finder.ModelVariableFinder 类是 handle 类。

类属性

HandleCompatible
true

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

创建对象

描述

finder = slreportgen.finder.ModelVariableFinder(container) 创建一个查找器,用于查找指定 container 中使用的变量,该查找器可以是 Simulink 模型或子系统。请参阅 Container 属性。您可以通过设置查找器的属性来限制搜索。使用查找器的方法执行搜索。

注意

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

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

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

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

示例

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

属性

全部展开

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

属性:

GetAccess
公共
SetAccess
公共

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

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

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

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

属性:

GetAccess
公共
SetAccess
公共

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

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

是否在引用模型中搜索变量,指定为以下值之一:

描述
true在引用模型中搜索变量。(默认)
false不要在引用模型中搜索变量。

注意

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

属性:

GetAccess
公共
SetAccess
公共

数据类型: logical

要搜索的变量的名称,指定为字符向量或字符串标量。如果将 Regexp 属性设置为 "on",则 Name 的值可以是正则表达式。如果 Name 属性为空,则查找器不会根据变量名称进行搜索。

示例: "vehicledata"

示例: "^vehicle"

属性:

GetAccess
公共
SetAccess
公共

数据类型: char | string

变量定义的来源,指定为以下值之一:

  • "base workspace"

  • "model workspace"

  • "mask workspace"

  • "data dictionary"

如果设置了 SourceType,则查找器仅从指定源返回变量。如果将 Regexp 属性设置为 "on",则 SourceType 的值可以是正则表达式。如果 SourceType 属性为空,则查找器不会按源过滤搜索结果。

示例: finder.SourceType = "model workspace" 返回模型工作区中定义的所有变量。

示例: 如果 finder.SourceType = "(base|mask) workspace" 属性设置为 Regexp,则 "On" 返回在基础工作区或封装工作区中定义的所有变量。

示例: 如果 finder.SourceType = "\w* workspace" 属性设置为 Regexp,则 "On" 返回基础、封装或模型工作区中定义的所有变量。

属性:

GetAccess
公共
SetAccess
公共

数据类型: char | string

用于搜索变量的模块的名称。将一个模块指定为字符向量或字符串标量。将多个模块指定为字符向量数组或字符串数组。查找器返回一个或多个指定模块使用的变量。如果您未设置 Users 属性,则查找器将搜索整个模型或子系统。如果将 Regexp 属性设置为 true,则可以将 Users 属性设置为正则表达式。

例如,要查找 MyModel 中由 Gain1 模块或 Gain2 模块使用的所有变量,您可以在 Users 属性中指定这两个块。

myFinder.Users = ["myModel/Gain1", "myModel/Gain2"];

或者,您可以使用匹配两个模块名称的正则表达式。

myFinder.Regexp = "on";
myFinder.Users = "Gain(1|2)";

属性:

GetAccess
公共
SetAccess
公共

数据类型: char | string

是否在封装子系统中进行搜索,指定为以下值之一。

描述
true在封装子系统中搜索变量。(默认)
false不在封装子系统中搜索变量。

数据类型: logical

是否跟随库链接,指定为以下值之一:

描述
true按照链接进入库模块图。库链接被视为子系统。(默认)
false不要点击链接进入库模块。库链接被视为模块。

属性:

GetAccess
公共
SetAccess
公共

数据类型: logical

是否包括非活动变体系统的变量,指定为以下值之一:

描述
false不包括非活动变体系统使用的变量。(默认)
true

包括非活动变体系统使用的变量。仅当包含 Variant SubsystemVariant Model 模块的变体激活时间配置参数设置为代码编译更新图时分析所有选择项时,才会找到非活动变体中的变量。要包含非活动系统的 Model 模块中的变量,还必须将此查找器的 SearchReferencedModels 属性设置为 true

注意

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

属性:

GetAccess
公共
SetAccess
公共

数据类型: logical

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

示例: finder.Properties = {"SourceType", "base workspace"}

属性:

GetAccess
公共
SetAccess
公共

数据类型: cell

方法

全部展开

示例

全部折叠

在模型中查找变量并将结果直接添加到报告中。

创建 Simulink 报告。

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

创建一个章节。

chapter = mlreportgen.report.Chapter();
chapter.Title = "Model Variable Finder Example";

加载模型。

model_name = "sf_car";
load_system(model_name)

创建一个变量查找器。

finder = slreportgen.finder.ModelVariableFinder(model_name);

指定查找器包含封装系统中的变量。

finder.LookUnderMasks = "all";

查找模型使用的变量。

results = find(finder);

将结果添加到章节中。

add(chapter,results);

在报告中添加章节。

add(rpt,chapter);

关闭报告并打开查看器。

close(rpt);
rptview(rpt);

在模型中找到以 vehicle 开头的变量,并将结果添加到报告中。

加载模型。

model_name = "sf_car";
load_system(model_name)

创建一个变量查找器。

finder = slreportgen.finder.ModelVariableFinder(model_name);

启用正则表达式匹配。

finder.Regexp = true;

使用正则表达式 ^vehicle 将搜索范围限制为以 vehicle 开头的结果。

finder.Name = "^vehicle";

查找模型使用的匹配变量。

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

            Object: [1×1 Simulink.VariableUsage]
              Name: "vehicledata"
            Source: "sf_car"
        SourceType: "model workspace"
             Users: "sf_car/Vehicle"
    ModelBlockPath: []
               Tag: []

通过遍历搜索结果并为每个结果设置模型变量报告器的属性来自定义报告中模型变量的格式。

创建报告。

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

创建一个章节。

chapter = mlreportgen.report.Chapter();
chapter.Title = "Model Variable Reporter Example";

加载模型。

model_name = "sf_car";
load_system(model_name);

在模型中找到变量。

finder = slreportgen.finder.ModelVariableFinder(model_name);

对于每个结果,获取该结果的 ModelVariable 报告器,自定义数字的格式,并将报告器添加到章节中。

while hasNext(finder)
    result = next(finder);
    reporter = getReporter(result);
    reporter.NumericFormat = "%.4f";    
    add(chapter,reporter);
end

将章节添加到报告中。

add(rpt,chapter);

关闭报告并打开查看器。

close(rpt);
rptview(rpt);

版本历史记录

在 R2019b 中推出

全部展开