主要内容

find_mdlrefs

在模型层次结构中查找引用的模型和模型块

描述

例子

模型) = find_mdlrefs (系统查找所有引用的模型和模型块在指定系统之下的模型层次结构中。的find_mdlrefs函数临时加载模型。

例子

模型) = find_mdlrefs (系统名称,值使用一个或多个名称-值对提供其他搜索选项。例如,为了保持模型已加载,而不是临时加载它们,设置KeepModelsLoaded真正的

例子

全部折叠

查找指定模型引用的所有模型的引用模型和模型块。

load_system (“sldemo_mdlref_basic”);[myModels, myModelBlks] = find_mdlrefs (“sldemo_mdlref_basic”
myModels =2 x1细胞{' sldemo_mdlref_counter} {' sldemo_mdlref_basic '}
myModelBlks =3 x1细胞{' sldemo_mdlref_basic / CounterA '} {' sldemo_mdlref_basic / CounterB '} {' sldemo_mdlref_basic / CounterC '}

默认情况下,find_mdlrefs函数加载,然后关闭尚未加载的模型。要确定加载了什么模型,请使用find_system函数。

find_mdlrefs (“sldemo_mdlref_depgraph”);find_system (“类型”“block_diagram”
Ans = 0x1空单元格数组

要查找并加载模型层次结构中的所有模型,请设置KeepModelsLoaded真正的

find_mdlrefs (“sldemo_mdlref_depgraph”“KeepModelsLoaded”,真正的);find_system (“类型”“block_diagram”
ans =7 x1细胞{'sldemo_mdlref_thermostat'} {' sldemo_mdlref_加热器'}{'sldemo_mdlref_F2C'} {'sldemo_mdlref_outdoor_temp'} {'sldemo_mdlref_house'} {'sldemo_mdlref_heat2cost'} {'sldemo_mdlref_depgraph'}

顶部模型和所有引用模型仍处于加载状态。如果你打开sldemo_mdlref_depgraph,您可以导航模型层次结构,而不必在打开引用的模型时等待它们加载。

输入参数

全部折叠

作为字符向量、字符串标量或数字标量指定的系统名称、块路径或句柄。

系统必须是SLX文件,MDL文件,模型块,或子系统块。

如果指定了文件名,请不要包含文件扩展名。

数据类型:|字符|字符串

名称-值参数

指定可选的逗号分隔的对名称,值参数。的名字参数名和价值为对应值。的名字必须出现在引号内。可以以任意顺序指定多个名称和值对参数Name1, Value1,…,的家

例子:refModels = find_mdlrefs (topmodel, KeepModelsLoaded,真的,ReturnTopModelAsLastElement,假)

选项以保持模型加载,指定为逗号分隔的对,由“KeepModelsLoaded”和数字或逻辑1真正的)或0).

默认情况下,该函数加载并关闭尚未加载的模型。要保持模型已加载,请将此参数设置为真正的.如果您计划在找到模型之后与它们进行交互,那么保持模型加载是很有用的。

数据类型:逻辑

要搜索的级别,指定为逗号分隔的对“AllLevels”和数字或逻辑1真正的)或0).

  • 真正的——搜索所有模型对象的模型层次结构中的块系统

  • —只搜索顶层系统。

数据类型:逻辑

选项在搜索结果中包括受保护的模型,指定为逗号分隔的对,由“IncludeProtectedModels”和数字或逻辑1真正的)或0).

此设置仅影响引用模型的返回列表;不影响返回的列表模型块。

数据类型:逻辑

选项在搜索结果中包括注释块,指定为逗号分隔对组成“IncludeCommented”和数字或逻辑1真正的)或0).

数据类型:逻辑

选项匹配搜索时的大小写,指定为真正的用于区分大小写的搜索或不区分大小写的搜索。

数据类型:逻辑

选项用于按照库链接进行搜索,指定为真正的.如果真正的,搜索跟随链接进入图书馆块。

数据类型:逻辑

搜索屏蔽块的选项,指定为:

  • “所有”-搜索所有屏蔽块。

  • “没有”—禁止在屏蔽系统中搜索。

  • “功能”-包括没有对话框的屏蔽子系统。

  • “图形”-包括没有工作空间或对话框的屏蔽子系统。

数据类型:字符|字符串

用于匹配搜索中的元素的函数句柄,例如块、系统、行、端口和注释。使用MatchFilter来确定在搜索中是否应该包含或跳过元素。

命名函数必须在MATLAB中定义®程序文件。该函数将元素的句柄作为输入,并返回两个输出。

函数[match, prune] = func(元素)
  • 输入元素正在处理的块的句柄。

  • 第一个输出,匹配,是一个逻辑值。如果,搜索跳过元素。

  • 第二个输出,修剪,是一个可选的逻辑值,仅适用于元素是一个子系统。默认值为.如果该值设置为真正的,整个子系统将从搜索中省略。

例如,使用MatchFilter找到所有模型对象在模型中的块InitFcnCallback是使用filter函数定义的,initFcnMdlBlocks

函数match = initFcnMdlBlocks(handle) match = ~isempty(get_param(handle,))“InitFcn”));结束
目录(fullfile (matlabroot,“例子”“金宝appsimulink_variants”“主要”));模型=“slexVariantMdlRefCondProp”;load_system(模型);(模型、块)= find_mdlrefs(模型,“MatchFilter”@initFcnMdlBlocks)

变体:为了找到活动变量或代码编译变量块,编译模型并应用Simulink的适当匹配过滤函数金宝app®提供了。

  • 金宝appSimulink.match.activeVariants—匹配在模型编译后的模拟中活跃的块。

  • 金宝appSimulink.match.codeCompileVariants-匹配模型编译后生成的代码的一部分。

例如,使用the金宝appSimulink.match.activeVariants选择在模型中找到活动的变体。

目录(fullfile (matlabroot,“例子”“金宝appsimulink_variants”“主要”));模型=“slexVariantMdlRefCondProp”;load_system(模型);set_param(模型,“SimulationCommand”“更新”);(模型、块)= find_mdlrefs(模型,“MatchFilter”, 金宝app@Simulink.match.activeVariants);

例如,使用the金宝appSimulink.match.codeCompileVariants选项查找生成的C代码中的变体选项。

目录(fullfile (matlabroot,“例子”“金宝appsimulink_variants”“主要”));load_system (“slexVariantMdlRefCondProp”);assignin (“基地”“VSS_MODE”2);slexVariantMdlRefCondProp ([],[],[],“compileForCodegen”);(模型、块)= find_mdlrefs (“slexVariantMdlRefCondProp”...“MatchFilter”, 金宝app@Simulink.match.codeCompileVariants);slexVariantMdlRefCondProp ([],[],[],“术语”);

请注意

变体参数将被删除。使用MatchFilter代替。有关更多信息,请参见兼容性的考虑

选项在搜索结果中包括变体模型,指定为逗号分隔的对,由“变异”“ActivePlusCodeVariants”“ActiveVariants”,或“AllVariants”

  • “ActivePlusCodeVariants”-包括所有的变型模型不同的子系统在模拟中是活跃的,并且是生成代码的一部分。

  • “ActiveVariants”-包括主动的变型模型不同的子系统块。

  • “AllVariants”-包括所有的变型模型不同的子系统块。

此搜索约束仅适用于不同的子系统块具有变量控制方式设置为表达式标签.使用find_mdlrefs函数与MatchFilter选项操作所有类型的变量块。

数据类型:字符|字符串

选项在搜索结果中包含指定的系统,指定为逗号分隔对组成“ReturnTopModelAsLastElement”和数字或逻辑1真正的)或0).

属性指定的模型、库或子系统文件的名称,默认情况下,引用模型的返回列表中的最后一个元素是系统论点。如果指定一个块,则最后一个元素是包含该块的文件的名称。

数据类型:逻辑

输出参数

全部折叠

模型名称,作为字符向量的单元格数组返回。

属性指定的模型、库或子系统文件的名称,默认情况下,最后一个元素是系统论点。如果指定一个块,则最后一个元素是包含它的模型、库或子系统文件。

的名字模型块,作为字符向量的单元格数组返回。

兼容性的考虑

全部展开

从R2021a开始警告

行为在R2021a中改变

不建议从R2020b开始

之前介绍过的R2006a