主要内容

find_system

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

描述

例子

对象= 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 =1x1单元阵列{' vdp '}

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

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

The MathWorks, Inc.版权所有

vdp返回所有增益块的名称获得值设置为1

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

类中所有行和注释的句柄vdp系统。与“FindAll”,无论您如何指定要搜索的系统,该函数都会返回句柄。

load_system (“vdp”);L = find_system(“vdp”“FindAll”“上”“类型”“行”
L =19×134.0009 33.0009 32.0009 31.0010 30.0010 29.0010 28.0009 27.0033 26.0009 25.0009
A = find_system(“vdp”“FindAll”“上”“类型”“注释”
一个=2×136.0009 - 35.0009

查找值为的任何块对话框参数0vdp而且ex_sldemo_clutch系统。

load_system ({“vdp”“f14”find_system ({})“vdp”“f14”},“BlockDialogParams”' 0 '
ans = 32×1 cell array {'vdp/更多信息'}{'vdp/更多信息/模型信息'}{'vdp/x2'} {'vdp/Out1'} {'vdp/Out1'} {'vdp/Out1'} {'f14/飞机(动力学)(模型)'}{'f14/飞机(动力学)(模型/垂直速度)(w (ft//sec)'} {'f14/飞机(动力学)(模型/垂直速度)(w (ft//sec)'} {'f14/飞机(动力学)(模型/垂直速度)(q (rad//sec)'} {'f14/飞机(动力学)(模型/垂直速度)(q (rad//sec)'} {'f14/飞机(动力学)(模型/俯仰速度)(q (rad//sec)'} {'f14/飞机(动力学)(模型/俯仰速度)(q (rad//sec)'} {'f14/飞机(动力学)(模型/俯仰速度)(模型/俯仰速度)(q (rad//sec)'} {'f14/飞机(动力学)(模型/俯仰速度)(模型/俯仰速度)(q (rad//sec)'} {'f14/飞机(动力学)(模型/俯仰速度)(模型/俯仰速度)(q (rad//sec)'} {'f14/飞机(动力学)(模型/俯仰速度)(模型/俯仰速度)(q (rad//sec)')

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

load_system ({“ex_sldemo_clutch”“vdp”});find_system (“SearchDepth”' 1 '“正则表达式”“上”“BlockDialogParams”' ^ 3 '
ans =4 x1细胞{' 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/摩擦模式逻辑/Tin'} {'ex_sldemo_clutch/摩擦模式逻辑/Tfmaxs'} {'ex_sldemo_clutch/摩擦模式逻辑/破碎分开…'} {'ex_sldemo_clutch/摩擦模式逻辑/破碎分开…'} {'ex_sldemo_clutch/摩擦模式逻辑/破碎分开…'} {'ex_sldemo_clutch/摩擦模式逻辑/锁定…'} {'ex_sldemo_clutch/摩擦模式逻辑/锁定…'} {'ex_sldemo_clutch/摩擦模式逻辑/锁定…'} {'ex_sldemo_clutch/摩擦模式逻辑/锁定…'} {'ex_sldemo_clutch/摩擦模式逻辑/锁定…'} {'ex_sldemo_clutch/摩擦模式逻辑/锁定…'} {'ex_sldemo_clutch/摩擦模式逻辑/锁定…'} {'ex_sldemo_clutch/摩擦模式逻辑/锁定…”}{' 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/Locked/Tin'} {'ex_sldemo_clutch/Locked/w'} {'ex_sldemo_clutch/Unlocked/Tfmaxk'} {'ex_sldemo_clutch/Unlocked/Tin'} {'ex_sldemo_clutch/Unlocked/we'}

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

打开模型。使用find_system“FollowLinks”设置为“关闭”.该命令不按照库链接进入子系统,只返回顶层的子系统。

open_system (“myModel”) find_system (bdroot“LookUnderMasks”“上”“FollowLinks”“关闭”
ans = 'myModel' 'myModel/子系统'

使用find_system“FollowLinks”设置为“上”find_system更新库链接并返回子系统中的块。

find_system (bdroot“LookUnderMasks”“上”“FollowLinks”“上”
更新链接: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.0013 4.0013 8.0011 13.0011 14.0011 14.0011 15.0011 15.0011

输入参数

全部折叠

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

例子:“MyModel / Subsystem1”

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

名称-值参数

指定可选参数对为Name1 = Value1,…,以=家,在那里的名字参数名称和价值对应的值。名称-值参数必须出现在其他参数之后,但对的顺序无关紧要。

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

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

当你使用find_system函数,名称,值对参数可以包括搜索约束、参数名和值对。您可以以任何顺序指定搜索约束,但它们必须在参数名和值对之前。

看到屏蔽一些参数用于块参数列表。

选项用于搜索块对话框参数中的指定值,指定为由逗号分隔的对组成“BlockDialogParams”和字符向量或字符串标量。该搜索约束对必须遵循其他搜索约束对。

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

选项,在搜索中的系统中包括行、端口和注释,指定为逗号分隔的对,由“FindAll”而且“上”“关闭”.当此选项设置为“上”find_system返回一个句柄向量,无论您如何指定系统论点。

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

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

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

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

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

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

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

  • “没有”—搜索时跳过屏蔽的子系统。

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

  • “所有”—Search包括所有被屏蔽的子系统。

  • “上”—Search包括所有被屏蔽的子系统。

  • “关闭”—搜索跳过屏蔽子系统。

选项,将搜索表达式视为由逗号分隔的对组成的正则表达式“正则表达式”而且“上”将搜索表达式视为正则表达式或“关闭”.学习更多关于MATLAB的知识®正则表达式,参见正则表达式

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

请注意

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

用于搜索变量的选项,指定为逗号分隔的对,由“变异”其中一个选项是:

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

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

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

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

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

论点:

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

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

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

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

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

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

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

示例:使用MatchFilter找到所有非轮廓尺寸而且外港在模型中使用你自己定义的过滤器函数,nonInOutBlocks

函数match = nonInOutBlocks(handle) match = true;如果比较字符串(get_param(句柄,“类型”),“块”blockType = get_param(句柄,“BlockType”);如果比较字符串(blockType“尺寸”) | |...比较字符串(blockType“输出港”) match = false;结束结束结束
load_system (“vdp”);BLKS = find_system(“vdp”“MatchFilter”@nonInOutBlocks)

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

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

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

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

请注意

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

有关比较这些过滤器的预编译和后编译时结果的示例,请参见使用find_system和内置的MatchFilter选项变体块

示例:使用金宝appSimulink.match.activeVariants筛选以查找模型中的活动变量。

目录(fullfile (matlabroot,“例子”“金宝appsimulink_variants”“主要”));模型=“sldemo_variant_subsystems”;load_system(模型);assignin (“基地”“VSS_MODE”2);set_param(模型,“SimulationCommand”“更新”);activeBlks = find_system(模型,“MatchFilter”, @金宝appSimulink.match.activeVariants);

示例:使用金宝appSimulink.match.codeCompileVariants过滤器来查找生成的C代码中的变体选项。

目录(fullfile (matlabroot,“例子”“金宝appsimulink_variants”“主要”));load_system (“sldemo_variant_subsystems”);assignin (“基地”“VSS_MODE”2);sldemo_variant_subsystem ([], [], [],“compileForCodegen”);activeBlks = find_system (“sldemo_variant_subsystems”“MatchFilter”, @金宝appSimulink.match.codeCompileVariants);sldemo_variant_subsystem ([], [], [],“术语”);

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

find_system (“sldemo_variant_subsystems”“MatchFilter”, @金宝appSimulink.match.allVariants);

输出参数

全部折叠

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

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

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

版本历史

R2006a之前介绍

全部展开