主要内容

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,…,以=家,在那里的名字参数名称和价值对应的值。名称-值参数必须出现在其他参数之后,但对的顺序无关紧要。

在R2021a之前,使用逗号分隔每个名称和值,并将其括起来的名字在报价。

例子:refModels = find_mdlrefs(topmodel,' keepmodelloaded ',true,'ReturnTopModelAsLastElement',false)

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

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

数据类型:逻辑

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

  • 真正的-搜索所有模型的模型层次结构中的系统

  • —只搜索顶级系统。

数据类型:逻辑

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

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

数据类型:逻辑

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

数据类型:逻辑

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

数据类型:逻辑

选项,以搜索库链接,指定为真正的.如果真正的,搜索会跟随链接进入库块。

数据类型:逻辑

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

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

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

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

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

数据类型:字符|字符串

选项,用于匹配和筛选搜索中的块、系统、行、端口和注释等元素,指定为函数句柄。使用MatchFilter以确定在搜索中是否应该包括或跳过元素。

论点:

  • 允许您使用自定义筛选函数筛选元素

  • 避免在过滤器不匹配时处理元素

  • 在块、行或注释上应用复杂过滤器,以便在内部过滤结果

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

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

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

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

例如,使用MatchFilter找到所有模型控件的模型中InitFcnCallback是使用filter函数定义的initFcnMdlBlocks

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

变体:金宝app®提供这些内置匹配筛选器函数,以查找模拟中活动的变量块或部分生成的代码。

  • 金宝appSimulink.match.activeVariants-过滤功能,以查找在模型编译后的模拟中活跃的块。

  • 金宝appSimulink.match.codeCompileVariants-过滤器功能,以查找块的一部分,生成的代码在模型编译后。

  • 金宝appSimulink.match.allVariants-过滤功能,查找所有的块,而不管块是否由于变量而处于活动或非活动状态。

请注意

为了得到正确的结果,您必须编译模型使用前金宝appSimulink.match.activeVariants而且金宝appSimulink.match.codeCompileVariants过滤器。如果没有编译模型,这些过滤器将返回模型中的所有块。

例如,使用金宝appSimulink.match.activeVariants在模型中查找活动变量的选项。

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

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

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

示例:使用金宝appSimulink.match.allVariants ()筛选器以查找模型中的所有块。

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

请注意

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

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

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

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

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

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

数据类型:字符|字符串

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

默认情况下,返回的引用模型列表中的最后一个元素是您使用系统论点。如果指定一个块,最后一个元素是包含它的文件的名称。

数据类型:逻辑

输出参数

全部折叠

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

类所指定的模型、库或子系统文件的名称默认为最后一个元素系统论点。如果您指定了一个块,那么最后一个元素就是包含它的模型、库或子系统文件。

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

版本历史

R2006a之前介绍

全部展开