主要内容

find_system.

查找系统,块,行,端口和注释

变体选项将被删除。用MatchFilter反而。有关更多信息,请参阅兼容性的考虑

描述

例子

对象= find_system返回已加载的系统及其块,包括子系统。

例子

对象= find_system (系统返回指定的系统及其块。

例子

对象= find_system (名称,价值返回满足一个或多个指定标准的系统中加载的系统和对象名称,价值对参数。可以使用此语法指定搜索约束和搜索特定的参数值。在参数和值对之前指定搜索约束。

例子

对象= find_system (系统名称,价值返回满足指定标准的指定系统中的对象。

例子

全部收缩

返回所有加载的系统及其块的名称。

load_system(“vdp”) find_system
ans =.15 x1细胞{vdp的}{‘vdp /常数’}{' vdp /更多信息'}{vdp /信息/模型信息的}{的vdp /亩}{的vdp / Mux} {vdp /产品的}{vdp /范围的}{vdp /平方的}{vdp /总和的}{的vdp / Sum1} {vdp / x1的}{vdp / x2的}{vdp /着干活的}{' vdp / Out2 '}

返回加载的系统和库,包括vdp

返回vdp系统及其模块。

load_system({“vdp”“ex_sldemo_clutch”})find_system(“vdp”
ans =.15 x1细胞{vdp的}{‘vdp /常数’}{' vdp /更多信息'}{vdp /信息/模型信息的}{的vdp /亩}{的vdp / Mux} {vdp /产品的}{vdp /范围的}{vdp /平方的}{vdp /总和的}{的vdp / Sum1} {vdp / x1的}{vdp / x2的}{vdp /着干活的}{' vdp / Out2 '}

返回加载的模型,子系统和库的名称。仅当子系统可以独立加载时才会返回子系统名称。

load_system(“vdp”);find_system ('类型'“block_diagram”
ans =.1 x1单元阵列{' vdp '}

类中解锁子系统的所有子Goto块的名称ex_sldemo_clutch系统。

load_system(“ex_sldemo_clutch”);find_system (“ex_sldemo_clutch /解锁”“SearchDepth”,1,“BlockType”“转到”
ans =.2 x1细胞{“ex_sldemo_clutch /解锁/ Goto”}{' ex_sldemo_clutch /解锁/ Goto1 '}

The MathWorks, Inc.版权所有

搜索vdp系统并返回所有增益块的名称获得值设置为1

load_system(“vdp”);find_system (“vdp”“BlockType”“获得”“获得”'1'
ans =.1 x1单元阵列{'vdp / mu'}

控件中的所有行和注释的句柄vdp系统。与'找到所有',该函数返回句柄,而不管您如何指定系统搜索。

load_system(“vdp”);l = find_system(“vdp”'找到所有''上''类型'“行”
l =19×134.0044 33.0044 32.0044 31.0044 30.0044 29.0044 28.0044 27.0044 26.0044 25.0044⋮
一个= find_system (“vdp”'找到所有''上''类型'“注释”
A =2×136.0044 - 35.0044

查找值为的任何块对话框参数0.vdpex_sldemo_clutch系统。

load_system({“vdp”“f14”find_system ({})“vdp”“f14”},'blockdialogparams''0'
ans = 32×1单元阵列{' vdp /更多信息'}{vdp /信息/模型信息的}{vdp /范围的}{vdp / x2的}{vdp /着干活的}{vdp /着干活的}{的vdp / Out2}{的vdp / Out2} {f14 /飞机↵↵动态模型的}{' f14 /飞机↵动力学↵模型/垂直速度↵w(英国《金融时报》/ /秒)”}{' f14 /飞机↵动力学↵模型/垂直速度↵w(英国《金融时报》/ /秒)”}{' f14 /飞机↵动力学↵模型/速率↵q (rad//sec)'} {'f14/飞机↵Dynamics↵模型/俯仰速率↵q (rad//sec)'} . . .

查找当前加载系统顶层的所有块,并以块对话框参数值开头3.

load_system({“ex_sldemo_clutch”“vdp”});find_system (“SearchDepth”'1'“正则表达式”'上''blockdialogparams'' ^ 3 '
ans =.4x1细胞{' vdp /范围'}{vdp /范围的}{vdp /平方的}{' ex_sldemo_clutch / w '}

使用正则表达式搜索时,可以指定要匹配的字符向量的一部分,以返回包含该字符向量的所有对象。中的所有输入和输出模块ex_sldemo_clutch模型。

load_system(“ex_sldemo_clutch”);find_system (“ex_sldemo_clutch”“正则表达式”'上'“blocktype”“端口”
ans =.39 x1细胞{' ex_sldemo_clutch /摩擦……'}{“ex_sldemo_clutch /摩擦……'}{“ex_sldemo_clutch /摩擦……'} {'ex_sldemo_clutch/Friction Mode Logic/Tin'} {'ex_sldemo_clutch/Friction Mode Logic/Tfmaxs'} {'ex_sldemo_clutch/Friction Mode Logic/Break Apart…'} {'ex_sldemo_clutch/Friction Mode Logic/Break Apart…'} {'ex_sldemo_clutch/Friction Mode Logic/Break Apart…ex_sldemo_clutch/Friction Mode Logic/ locking…ex_sldemo_clutch/Friction Mode Logic/ locking…ex_sldemo_clutch/Friction Mode Logic/ locking…ex_sldemo_clutch/Friction Mode Logic/ locking…ex_sldemo_clutch/Friction Mode Logic/ locking…ex_sldemo_clutch/Friction Mode Logic/ locking…ex_sldemo_clutch/Friction Mode Logic/ locking…ex_sldemo_clutch/Friction Mode Logic/ locking…”}{' ex_sldemo_clutch /摩擦模式逻辑/禁售FSM /锁'}{' ex_sldemo_clutch /摩擦模式逻辑/ FSM锁定/解锁”}{' ex_sldemo_clutch /摩擦模式逻辑/禁售FSM /锁’}{' ex_sldemo_clutch /摩擦模式逻辑/必要的摩擦/锡'}{' ex_sldemo_clutch /摩擦模式逻辑/必要的摩擦/ Tf '} {' ex_sldemo_clutch /摩擦模式逻辑/锁'}{ex_sldemo_clutch /摩擦模式逻辑锁的}{ex_sldemo_clutch /摩擦模式逻辑/解锁的}{ex_sldemo_clutch /摩擦模式逻辑/ Tf的}{ex_sldemo_clutch /锁定/锡的}{ex_sldemo_clutch /锁定/ w的}{' ex_sldemo_clutch /解锁/ Tfmaxk '} {ex_sldemo_clutch /解锁/锡的}{ex_sldemo_clutch /解锁/我们的}⋮

在这个例子中,mymodel.包含一个子系统,它是一个库链接。模型最后一次打开后,a获得将块添加到库中相应的子系统中。

打开模型。用find_system.'跟随链接'调成“关闭”.该命令不遵循库链接到子系统中,并仅在顶级返回子系统。

open_system (“myModel”)find_system(bdroot,“LookUnderMasks”'上''跟随链接'“关闭”
myModel/子系统

find_system.'跟随链接'调成'上'find_system.更新库链接并返回子系统中的块。

find_system(bdroot,“LookUnderMasks”'上''跟随链接''上'
更新Link: myModel/Subsystem/Gain ans = 'myModel' 'myModel/Subsystem' 'myModel/Subsystem/Gain'

提供系统给find_system.作为一个句柄。搜索值为的块对话框参数0..如果你多次打电话给get_param对于同一块,然后使用块句柄比指定作为字符向量的完整块路径更有效。

load_system(“vdp”);sys = get_param(“vdp”“处理”);find_system(sys,'blockdialogparams''0'
ans =.8×13.0046 4.0046 8.0046 13.0046 14.0046 14.0046 15.0046 15.0046

输入参数

全部收缩

系统搜索,指定为完整的系统路径名、系统路径名的单元格数组、句柄或句柄向量。

例子:“MyModel / Subsystem1”

例子:{“vdp”、“ex_sldemo_clutch”}

名称值对参数

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

例子:‘SearchDepth’,‘0’,‘LookUnderMasks’,‘没有’,‘BlockType’,“转到”在加载系统(不包括屏蔽子系统)中搜索Goto块。

当你使用的时候find_system.功能,名称,价值对参数可以包括搜索约束以及参数名称和值对。您可以以任何顺序指定搜索约束,但它们必须位于参数名和值对之前。

屏蔽一些参数获取块参数列表。

选项来搜索块对话框参数中的指定值,指定的值由逗号分隔的对组成'blockdialogparams'和一个字符向量或字符串标量。这一对必须跟随其他搜索约束对。

选项在匹配时考虑大小写,指定为逗号分隔的对,由'区分大小写''上'用于区分大小写的搜索或“关闭”

选项,在搜索中包含系统中的行、端口和注释,指定为逗号分隔的对,由'找到所有''上'“关闭”。此选项设置为'上'find_system.对象返回句柄向量,而不管您如何指定系统争论 。

选项,只返回第一个结果,然后停止搜索,指定为逗号分隔的对,由“FirstResultOnly”'上'“关闭”

选项,用于查看模型中引用的子系统内部,并列出指定为逗号分隔对的子块“LookInsideSubsystemReference”'上'“关闭”

遵循链接到库块的选项,指定为包含的逗号分隔对'跟随链接''上'“关闭”.如果没有指定要搜索的系统,find_system.在结果中包括已加载的库,无论是否设置'跟随链接''上'“关闭”.您可以使用'跟随链接'“LookUnderMasks”更新子系统中的库链接。看更新子系统中的库链接

选项,在搜索中包含注释块,指定为逗号分隔的对,由'包括''上'“关闭”

选项来加载任何部分加载的模型,指定为逗号分隔的对“LoadFullyIfNeeded”'上'加载模型或“关闭”禁用加载。例如,使用此选项以防止加载警告。

掩码下搜索的选项,指定为逗号分隔的对,由“LookUnderMasks”和其中一个选择:

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

  • '没有任何'—搜索会跳过被屏蔽的子系统。

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

  • '全部'—搜索包括所有屏蔽子系统。

  • '上'—搜索包括所有屏蔽子系统。

  • “关闭”- 搜索跳过蒙版子系统。

选项,将搜索表达式视为正则表达式,指定为由组成的逗号分隔的对'regexp''上'将搜索表达式视为正则表达式或“关闭”.了解更多关于MATLAB的知识®正则表达式,请参阅常用表达

将搜索深度限制为指定级别的选项,指定为包含的逗号分隔对“SearchDepth”和一个正整数字符向量或字符串标量。例如,指定'0'只搜索加载的系统,'1'对于顶级系统的块和子系统,'2'顶层体系及其子代等。默认是搜索所有级别。

选项,指定为逗号分隔的对,由'变体'和其中一个选择:

  • “ActiveVariants”-搜索只活跃的变体选择在不同的子系统

  • “AllVariants”-搜索所有不同的选择在不同的子系统

  • 'ActivePlusCodevariants'-搜索所有不同的选择在不同的子系统在模拟中是活跃的,并且是生成代码的一部分。

笔记

此搜索约束仅适用于不同的子系统那个障碍变量控制方式调成表达式标签.使用find_system.函数与MatchFilter选项对所有类型的变体块进行操作。

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

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

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

  • 第一个输出,匹配,是一个逻辑价值。如果错误的,搜索将跳过该元素。

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

示例:使用MatchFilter找到所有的非轮廓尺寸外港使用您自己定义的过滤器功能块在模型中,非禁止块

函数match = nonInOutBlocks(handle) match = true;如果比较字符串(get_param(句柄,“类型”),'堵塞')blocktype = get_param(句柄,“BlockType”);如果比较字符串(blockType'inport') | |...比较字符串(blockType'外港') match = false;结尾结尾结尾
load_system(“vdp”);黑色= find_system (“vdp”“MatchFilter”@nonInOutBlocks)

变体:万博1manbetx仿真软件提供了万博1manbetxSimulink.match.activeVariants万博1manbetxSimulink.match.codeCompileVariants匹配变体块的过滤器函数,您可以使用它来查找活动变体或代码编译变体块。为此,编译模型并应用适当的MatchFilter选项:

  • 万博1manbetxSimulink.match.activeVariants-匹配模型编译后在模拟中活动的块

  • 万博1manbetxSimulink.match.codeCompileVariants-匹配模型编译后生成代码的一部分

示例:使用万博1manbetxSimulink.match.activeVariants在模型中查找活动变量的选项:

AddPath(FullFile(Matlabroot,“例子”“万博1manbetxsimulink_variants”“主要”));模型=“sldemo_variant_subsystems”;load_system(型号);Assivein(“基地”“VSS_MODE”2);set_param(模型,“SimulationCommand”“更新”);activeBlks = find_system(模型,“MatchFilter”,@ 万博1manbetxsimulink.match.activevariants);

示例:使用万博1manbetxSimulink.match.codeCompileVariants选项来查找生成的C代码中的变体选项:

AddPath(FullFile(Matlabroot,“例子”“万博1manbetxsimulink_variants”“主要”));load_system(“sldemo_variant_subsystems”);Assivein(“基地”“VSS_MODE”2);sldemo_variant_subsystems ([], [], [],“compileForRTW”);activeBlks = find_system (“sldemo_variant_subsystems”“MatchFilter”, @万博1manbetxSimulink.match.codeCompileVariants);sldemo_variant_subsystems ([], [], [],'学期');

输出参数

全部收缩

匹配找到的对象,返回如下:

  • 如果指定,则为路径名的单元格数组系统作为路径名或路径名的单元格数组,或者如果没有指定系统

  • 如果你指定的话,一个句柄向量系统作为句柄或句柄向量

兼容性的考虑

全部展开

警告从R2021a开始

R2021a中行为改变

之前介绍过的R2006a