本页对应的英文页面已更新,但尚未翻译。 若要查看最新内容,请点击此处访问英文页面。

find_system

查找系统、模块、信号线、端口和注释

说明

示例

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

示例

Objects = find_system(System) 返回指定的系统及其模块。

示例

Objects = find_system(Name,Value) 返回已加载的系统以及这些系统中满足一个或多个 Name,Value 对组参数指定的条件的对象。您可以使用此语法指定搜索约束条件和搜索特定的参数值。在参数和值对组之前指定搜索约束条件。

示例

Objects = find_system(System,Name,Value) 返回指定系统中满足指定条件的对象。

示例

全部折叠

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

load_system('vdp')
find_system
ans = 13x1 cell array
    {'vdp'                     }
    {'vdp/Fcn'                 }
    {'vdp/More Info'           }
    {'vdp/More Info/Model Info'}
    {'vdp/Mu'                  }
    {'vdp/Mux'                 }
    {'vdp/Product'             }
    {'vdp/Scope'               }
    {'vdp/Sum'                 }
    {'vdp/x1'                  }
    {'vdp/x2'                  }
    {'vdp/Out1'                }
    {'vdp/Out2'                }

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

返回 vdp 系统及其模块。

load_system({'vdp','fuelsys'})
find_system('vdp')
ans = 13x1 cell array
    {'vdp'                     }
    {'vdp/Fcn'                 }
    {'vdp/More Info'           }
    {'vdp/More Info/Model Info'}
    {'vdp/Mu'                  }
    {'vdp/Mux'                 }
    {'vdp/Product'             }
    {'vdp/Scope'               }
    {'vdp/Sum'                 }
    {'vdp/x1'                  }
    {'vdp/x2'                  }
    {'vdp/Out1'                }
    {'vdp/Out2'                }

只返回已加载的模型(如模块图)的名称。此命令还返回库名称,因为库被视为模型。

load_system('vdp');
open_bd = find_system('type','block_diagram')
open_bd = 1x1 cell array
    {'vdp'}

返回作为 sldemo_clutch 系统的 Unlocked 子系统的子级存在的所有 Goto 模块的名称。

load_system('sldemo_clutch');
find_system('sldemo_clutch/Unlocked','SearchDepth',1,'BlockType','Goto')
ans = 2x1 cell array
    {'sldemo_clutch/Unlocked/Goto' }
    {'sldemo_clutch/Unlocked/Goto1'}

vdp 系统中进行搜索,并返回 Gain 值设置为 1 的所有 Gain 模块的名称。

load_system('vdp');
find_system('vdp','BlockType','Gain','Gain','1')
ans = 1x1 cell array
    {'vdp/Mu'}

获取 vdp 系统中所有信号线和注释的句柄。对于 'FindAll',不管您如何指定要搜索的系统,该函数都会返回句柄。

load_system('vdp');
L = find_system('vdp','FindAll','on','type','line')
L = 17×1

   30.0042
   29.0042
   28.0042
   27.0042
   26.0042
   25.0042
   24.0042
   23.0042
   22.0042
   21.0042
      ⋮

A = find_system('vdp','FindAll','on','type','annotation')
A = 2×1

   32.0042
   31.0042

vdpfuelsys 系统中查找值为 0 的任何模块对话框参数。

load_system({'vdp','fuelsys'})
find_system({'vdp','fuelsys'},'BlockDialogParams','0')
ans = 

    'vdp/x2'
    'vdp/Out1'
    'vdp/Out2'
    'fuelsys/Constant2'
    'fuelsys/Constant4'
    'fuelsys/Constant5'
    'fuelsys/engine …'
    'fuelsys/engine …'
    'fuelsys/engine …'
    'fuelsys/engine …'
				.
				.
				.

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

load_system({'fuelsys','vdp'});
find_system('SearchDepth','1','regexp','on','BlockDialogParams','^3')
ans = 3x1 cell array
    {'vdp/Scope'         }
    {'vdp/Scope'         }
    {'fuelsys/Nominal...'}

使用正则表达式进行搜索时,您可以指定要匹配的字符向量的一部分,以返回包含该字符向量的所有对象。在 sldemo_clutch 模型中查找所有 Inport 和 Outport 模块。

load_system('sldemo_clutch');
find_system('sldemo_clutch','regexp','on','blocktype','port')
ans = 39x1 cell array
    {'sldemo_clutch/Friction...'                               }
    {'sldemo_clutch/Friction...'                               }
    {'sldemo_clutch/Friction...'                               }
    {'sldemo_clutch/Friction Mode Logic/Tin'                   }
    {'sldemo_clutch/Friction Mode Logic/Tfmaxs'                }
    {'sldemo_clutch/Friction Mode Logic/Break Apart...'        }
    {'sldemo_clutch/Friction Mode Logic/Break Apart...'        }
    {'sldemo_clutch/Friction Mode Logic/Break Apart...'        }
    {'sldemo_clutch/Friction Mode Logic/Lockup...'             }
    {'sldemo_clutch/Friction Mode Logic/Lockup...'             }
    {'sldemo_clutch/Friction Mode Logic/Lockup...'             }
    {'sldemo_clutch/Friction Mode Logic/Lockup...'             }
    {'sldemo_clutch/Friction Mode Logic/Lockup...'             }
    {'sldemo_clutch/Friction Mode Logic/Lockup...'             }
    {'sldemo_clutch/Friction Mode Logic/Lockup...'             }
    {'sldemo_clutch/Friction Mode Logic/Lockup...'             }
    {'sldemo_clutch/Friction Mode Logic/Lockup FSM/lock'       }
    {'sldemo_clutch/Friction Mode Logic/Lockup FSM/unlock'     }
    {'sldemo_clutch/Friction Mode Logic/Lockup FSM/locked'     }
    {'sldemo_clutch/Friction Mode Logic/Requisite Friction/Tin'}
    {'sldemo_clutch/Friction Mode Logic/Requisite Friction/Tf' }
    {'sldemo_clutch/Friction Mode Logic/locked'                }
    {'sldemo_clutch/Friction Mode Logic/lock'                  }
    {'sldemo_clutch/Friction Mode Logic/unlock'                }
    {'sldemo_clutch/Friction Mode Logic/Tf'                    }
    {'sldemo_clutch/Locked/Tin'                                }
    {'sldemo_clutch/Locked/w'                                  }
    {'sldemo_clutch/Unlocked/Tfmaxk'                           }
    {'sldemo_clutch/Unlocked/Tin'                              }
    {'sldemo_clutch/Unlocked/we'                               }
      ⋮

在本示例中,myModel 只包含一个子系统,它是一个库链接。上次打开模型后,向库中对应的子系统中添加了一个 Gain 模块。

打开模型。使用 find_system 并将 'FollowLinks' 设置为 'off'。此命令不会跟随库链接进入子系统,并且只返回顶层子系统。

open_system('myModel')
find_system(bdroot,'LookUnderMasks','on','FollowLinks', 'off')
ans = 

    'myModel'
    'myModel/Subsystem'

使用 find_system 并将 'FollowLinks' 设置为 'on'find_system 将更新库链接,并返回子系统中的模块。

find_system(bdroot,'LookUnderMasks','on','FollowLinks','on')
Updating Link: myModel/Subsystem/Gain
Updating Link: myModel/Subsystem/Gain

ans = 

    'myModel'
    'myModel/Subsystem'
    'myModel/Subsystem/Gain'

将该系统作为句柄提供给 find_system。搜索值为 0 的模块对话框参数。如果您对同一个模块多次调用 get_param,则使用模块句柄比以字符向量形式指定完整模块路径更高效。

load_system('vdp');
sys = get_param('vdp','Handle');
find_system(sys,'BlockDialogParams','0')
ans = 8×1

    3.0001
    4.0001
    8.0001
   11.0001
   12.0001
   12.0001
   13.0001
   13.0001

输入参数

全部折叠

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

示例: 'MyModel/Subsystem1'

示例: {'vdp','fuelsys'}

名称-值对组参数

指定可选的、以逗号分隔的 Name,Value 对组参数。Name 为参数名称,Value 为对应的值。Name 必须显示在引号内。您可采用任意顺序指定多个名称-值对组参数,如 Name1,Value1,...,NameN,ValueN

示例: 'SearchDepth','0','LookUnderMasks','none','BlockType','Goto' 在加载的系统(不包括封装子系统)中搜索 Goto 模块。

当您使用 find_system 函数时,Name,Value 对组实参中可以包括搜索约束条件以及形参名称-值对组。您可以按任意顺序指定搜索约束条件,但搜索约束条件必须在参数名称-值对组之前。

要查看模型和模块参数的列表,请参阅模型参数模块特定的参数

用于在模块对话框参数中搜索指定值的选项,指定为以逗号分隔的对组,其中包含 'BlockDialogParams' 和一个字符向量或字符串标量。该对组必须跟在其他搜索约束对组之后。

用于在匹配时考虑大小写的选项,指定为以逗号分隔的对组,由 'CaseSensitive''on'(表示搜索区分大小写)或 'off' 组成。

用于指示是否在搜索中包括系统中的信号线、端口和注释的选项,指定为以逗号分隔的对组,由 'FindAll''on''off' 组成。当此选项设置为 'on' 时,无论您如何指定 System 参数,find_system 都会返回句柄向量。

用于仅返回第一个结果然后停止搜索的选项,指定为以逗号分隔的对组,由 'FirstResultOnly''on''off' 组成。

用于深入模型中的引用子系统并列出子模块的选项,指定为以逗号分隔的对组,其中包含 'DiveInsideSubsystemReference''on''off'

用于跟随链接进入库模块的选项,指定为以逗号分隔的对组,由 'FollowLinks''on''off' 组成。如果您不指定要搜索的系统,find_system 将在结果中包括已加载的库,不管您将 'FollowLinks' 设置为 'on' 还是 'off'。您可以将 'FollowLinks''LookUnderMasks' 结合使用,以更新子系统中的库链接。请参阅更新子系统中的库链接

用于指示是否在搜索中包含带注释的模块的选项,指定为以逗号分隔的对组,由 'IncludeCommented''on''off' 组成。

用于指示是否将部分加载的模型完全加载的选项,指定为以逗号分隔的对组,包含 'LoadFullyIfNeeded''on'(表示加载模型)或 'off'(表示禁用加载)。例如,使用此选项可以防止出现加载警告。

用于指示如何搜索封装子系统的选项,指定为以逗号分隔的对组,由 'LookUnderMasks' 和以下选项之一组成:

  • 'graphical' - 搜索包括没有工作区和对话框的封装子系统。

  • 'none' - 搜索将跳过封装子系统。

  • 'functional' - 搜索包括没有对话框的封装子系统。

  • 'all' - 搜索包括所有封装子系统。

  • 'on' - 搜索包括所有封装子系统。

  • 'off' - 搜索将跳过封装子系统。

用于将搜索表达式视为正则表达式的选项,指定为以逗号分隔的对组,由 'RegExp''on'(表示将搜索表达式视为正则表达式)或 'off' 组成。有关 MATLAB® 正则表达式的详细信息,请参阅正则表达式 (MATLAB)。

用于将搜索深度限制在指定级别的选项,指定为以逗号分隔的对组,由 'SearchDepth' 和正整数字符向量或字符串标量组成。例如,指定 '0' 会仅搜索加载的系统,指定 '1' 会搜索顶层系统的模块和子系统,指定 '2' 会搜索顶层系统及其子级,等等。默认值为搜索所有级别。

用于搜索变体的选项,指定为以逗号分隔的对组,由 'Variants' 和以下选项之一组成:

  • 'ActiveVariants' - 仅在活动可变子系统中搜索。

  • 'AllVariants' - 在所有变体中搜索。

  • 'ActivePlusCodeVariants' - 如果有任何变体生成预处理器条件句,则搜索所有变体。否则,只搜索活动变体。

此搜索条件仅适用于可变子系统和模型变体。

输出参数

全部折叠

返回找到的匹配对象:

  • 如果您指定 System 为路径名称或路径名称元胞数组,或者您未指定系统,则返回为路径名称元胞数组

  • 如果您指定 System 为句柄或句柄向量,则返回为句柄向量

在 R2006a 之前推出