主要内容

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

slreportgen.finder.DiagramFinder 类

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

创建图查找器

描述

查找 Simulink® 图和 Stateflow® 图。

slreportgen.finder.DiagramFinder 类是 handle 类。

创建对象

描述

finder = DiagramFinder(container) 创建一个查找器,默认查找指定 container 中所有未注释的 Simulink 模块图和 Stateflow 图。要限制搜索以包含特定类型的图,请使用此查找器的属性。

注意

该查找器可以在查找模式或迭代器模式下运行。在查找模式下,使用其 find 方法将搜索结果作为结果数组返回。在迭代器模式下,使用其 hasNextnext 方法逐一返回搜索的结果。在具有许多模型引用的模型中搜索时,使用迭代器模式。迭代器模式在编译和搜索模型后会关闭该模型,而查找模式则会保持其搜索的所有模型处于打开状态。打开多个模型会消耗所有系统内存并减慢报告生成速度。迭代器模式比查找模式慢,因此使用查找模式来搜索引用很少或不引用其他模型的模型。

示例

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

示例

输入参量

全部展开

请参阅 Container 属性。

属性

全部展开

要搜索的模型容器,指定为以下值之一:

  • Simulink 模型、子系统或模型模块的句柄

  • Simulink 模型、子系统或模型模块的路径

  • Stateflow 图模块的句柄

  • Stateflow 图模块的路径

  • Stateflow 图 ID

  • Stateflow 图对象

系统图搜索的深度,指定为 Inf 或正整数。SearchDepth 指定在图容器中搜索图的深度级别。要搜索所有层级,请使用 Inf

属性:

GetAccess
公共
SetAccess
公共

数据类型: double

选择搜索封装子系统,指定为逻辑值 1 (true) 或 0 (false)。如果此属性为 true,则查找器将在图容器中搜索封装的 Subsystem 模块。它搜索指定的 SearchDepth 并将找到的图包含在搜索结果中。

属性:

GetAccess
公共
SetAccess
公共

数据类型: logical

选择搜索引用模型,指定为逻辑值 1 (true) 或 0 (false)。如果此属性为 true,则查找器将搜索图容器中引用的模型。它搜索指定的 SearchDepth 并将找到的图包含在搜索结果中。

属性:

GetAccess
公共
SetAccess
公共

数据类型: logical

是否搜索引用子系统,指定为数值或逻辑 1 (true) 或 0 (false)。结果表明源子系统模块而不是所引用子系统模块的个别出现。因此,被多次引用的单个子系统只有一个结果。

数据类型: logical

选择搜索 Simulink 库链接,指定为逻辑值 1 (true) 或 0 (false)。如果此属性和 IncludeMaskedSubsystems 都是 true,则查找器将在图容器中搜索指向 Simulink 库中的子系统和封装 Subsystem 模块的链接。它搜索指定的 SearchDepth 并将找到的图包含在搜索结果中。如果此属性为 true,但 IncludeMaskedSubsystemsfalse,则查找器仅搜索 Simulink 库中 Subsystem 模块的链接。

属性:

GetAccess
公共
SetAccess
公共

数据类型: logical

选择搜索用户库链接,指定为逻辑值 1 (true) 或 0 (false)。如果此属性为 trueIncludeMaskedSubsystems 属性为 true,则查找器将在图容器中搜索指向用户库中的子系统和封装子系统模块的链接。它搜索指定的 SearchDepth 并将找到的图包含在搜索结果中。如果此属性为 true,但 IncludeMaskedSubsystems 属性为 false,则查找器仅搜索用户库中 Subsystem 模块的链接。

属性:

GetAccess
公共
SetAccess
公共

数据类型: logical

选择在搜索结果中包含注释掉的图,指定为逻辑值。如果是 false,注释掉的图将被排除在搜索结果之外。

属性:

GetAccess
公共
SetAccess
公共

数据类型: logical

搜索图的变体,指定为字符串或字符向量。默认值为 Active。有效值为:

描述
"Active"活动变体
"All"所有变体
"ActivePlusCode"活跃变体和代码变体

属性:

GetAccess
公共
SetAccess
公共

数据类型: char | string

查找器结果的排序方法,指定为下列值之一:

描述
"none"不对结果进行排序。
"alphabetical"按名称的字母顺序对结果进行排序。
"numBlocks"按系统中的模块数对结果进行排序。排序列表中的第一个模块包含最多的块。
"depth"按在模型层次结构中的深度对结果进行排序。排序列表中的第一个系统是层次结构中最高的系统。例如,一个模型及其子系统按以下顺序排序: myModelmyModel/subsystem1myModel/subsystem1/nestedSubststem

属性:

GetAccess
公共
SetAccess
公共

数据类型: char | string

要查找的对象的属性,指定为名称-值参量的元胞数组。查找器仅返回具有指定属性和指定值的对象。

示例: finder.Properties = {'Gain','5'}

属性:

GetAccess
公共
SetAccess
公共

数据类型: cell

是否关闭模型,指定为 truefalse。如果是 true,则查找器的 next 方法会关闭当前打开的模型,然后再移动到下一个要搜索的模型。关闭模型可以防止在搜索引用许多模型的模型时过度消耗内存。

注意

查找器的 find 方法忽略此属性并将所有引用模型保持为打开状态。因此,您不应使用 find 方法来搜索具有许多模型引用的模型。

数据类型: logical

方法

全部展开

示例

全部折叠

创建一份包含 sf_car 模型中所有图的图像的报告。虽然本例中使用的模型不包含模型引用,但示例使用迭代器模式来说明其语法。

import mlreportgen.report.*
import slreportgen.report.*
import slreportgen.finder.*

model_name = "sf_car";
load_system(model_name);
rpt = slreportgen.report.Report("output","pdf");
add(rpt, TitlePage(Title=model_name+" Systems"));

finder = DiagramFinder(model_name); 
while hasNext(finder)
    add(rpt,next(finder));
end    

close(rpt);
close_system(model_name);
rptview(rpt);

打开 sf_car 模型并找到其 Engine 子系统中的所有图。使用子系统的路径或其句柄。然后您可以将结果包含在您的报告中。

import mlreportgen.report.*
import slreportgen.report.*
import slreportgen.finder.*

model_name = "sf_car";
load_system(model_name);

% Use path 
enginePath = "sf_car/Engine";
finder = slreportgen.finder.DiagramFinder(enginePath);
results = find(finder);

% or use handle
engineHandle = get_param("sf_car/Engine","Handle");
finder = slreportgen.finder.DiagramFinder(engineHandle);
results_enginehandle = find(finder);

要查找具有特定属性值的元素,请使用 slreportgen.finder.DiagramElementFinder 类的对象。打开 f14 模型并找到所有值为 ZwGain 模块。

model = 'f14';
openExample(model);
finder = slreportgen.finder.DiagramElementFinder(model)
finder.Properties = {'Gain','Zw'};
results = find(finder);

版本历史记录

在 R2017b 中推出