slreportgen.finder.ModelVariableFinder 类
命名空间: slreportgen.finder
超类: mlreportgen.finder.Finder
查找 Simulink 模型使用的变量
描述
创建对象
描述
创建一个查找器,用于查找指定 finder
= slreportgen.finder.ModelVariableFinder(container
)container
中使用的变量,该查找器可以是 Simulink 模型或子系统。请参阅 Container 属性。您可以通过设置查找器的属性来限制搜索。使用查找器的方法执行搜索。
注意
此查找器提供了以下选项来获取搜索结果:
要将搜索结果作为数组返回,请使用
find
方法。将结果直接添加到报告中或在for
循环中处理结果。要逐个迭代结果,请在
while
循环中使用hasNext
和next
方法。
这两个选项在性能上都没有优势。
使用名称-值参量设置属性。您可以按任意顺序指定多个名称-值参量。finder
= slreportgen.finder.ModelVariableFinder(Name=Value
)
属性
要搜索的模型或子系统,指定为包含模型或子系统路径的字符串标量或字符向量,或者指定为模型或子系统的句柄。
属性:
GetAccess | 公共 |
SetAccess | 公共 |
是否匹配正则表达式, 指定为 "on"
或 "off"
,或指定为数值或逻辑值 1 (true
) 或 0 (false
)。值 "on"
等同于 true
,而 "off"
等同于 false
。因此,您可以将此属性的值用作逻辑值。该值以类型为 matlab.lang.OnOffSwitchState
. 的 on/off 逻辑值存储。
“on” - 启用对
Name
、SourceType
和Users
属性的值进行正则表达式匹配。"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 Subsystem 或 Variant Model 模块的变体激活时间配置参数设置为代码编译或更新图时分析所有选择项时,才会找到非活动变体中的变量。要包含非活动系统的 Model 模块中的变量,还必须将此查找器的 |
注意
您还可以使用 "on"
和 "off"
设置 IncludeInactiveVariants
属性。
属性:
GetAccess | 公共 |
SetAccess | 公共 |
数据类型: logical
要查找的 Simulink.VariableUsage
对象的属性,指定为由名称-值参量组成的元胞数组。查找器仅返回关联的 Simulink.VariableUsage
对象具有指定属性值的变量。
示例: finder.Properties = {"SourceType", "base workspace"}
属性:
GetAccess | 公共 |
SetAccess | 公共 |
数据类型: cell
方法
find |
将所有结果直接添加到报告中或在 |
hasNext | 如果查找器返回的变量可供 |
next |
|
示例
在模型中查找变量并将结果直接添加到报告中。
创建 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 中推出从 R2022a 开始,以下属性接受布尔值作为输入:
Regexp
SearchReferencedModels
LookUnderMasks
FollowLibraryLinks
IncludeInactiveVariants
您还可以使用这些属性的旧输入。
MATLAB Command
You clicked a link that corresponds to this MATLAB command:
Run the command by entering it in the MATLAB Command Window. Web browsers do not support MATLAB commands.
选择网站
选择网站以获取翻译的可用内容,以及查看当地活动和优惠。根据您的位置,我们建议您选择:。
您也可以从以下列表中选择网站:
如何获得最佳网站性能
选择中国网站(中文或英文)以获得最佳网站性能。其他 MathWorks 国家/地区网站并未针对您所在位置的访问进行优化。
美洲
- América Latina (Español)
- Canada (English)
- United States (English)
欧洲
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)