ドキュメンテーション

最新のリリースでは、このページがまだ翻訳されていません。 このページの最新版は英語でご覧になれます。

find_system

システム、ブロック、ライン、端子、注釈の検索

構文

  • Objects = find_system
  • Objects = find_system(System)
  • Objects = find_system(Name,Value)
  • Objects = find_system(System,Name,Value)

説明

Objects = find_system は、サブシステムを含む、読み込まれたシステムとそれらのブロックを返します。

Objects = find_system(System) は、指定されたシステムとそのブロックを返します。

Objects = find_system(Name,Value) は、読み込まれたシステムと、1 つ以上の Name,Value のペアの引数で指定された基準を満たすそれらのシステム内のオブジェクトを返します。この構文を使用して検索条件を指定し、特定のパラメーター値を検索できます。検索条件はパラメーターと値のペアの前に指定します。

Objects = find_system(System,Name,Value) は、指定されたシステムの指定された基準を満たすオブジェクトを返します。

入力引数

すべて折りたたむ

検索するシステム。システムの絶対パス名、システムのパス名のセル配列、ハンドル、ハンドルのベクトルとして指定します。

例: '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'

'on' の場合は、検索文字列の比較時に大文字と小文字が区別されます。

'FindAll'

'on' | {'off'}

'on' の場合、検索にはシステム内のライン、端子、注釈が含まれます。find_system は、このオプションが 'on' の場合、System の指定に関係なく、ハンドルのベクトルを返します。

'FollowLinks'

'on' | {'off'}

'on' の場合、検索はライブラリ ブロックへリンクされたものを含みます。検索するシステムを指定しない場合、'FollowLinks''on' または 'off' のどちらに設定されても、find_system の結果には読み込まれたライブラリが含まれます。'FollowLinks''LookUnderMasks' と共に使用すると、サブシステムでライブラリ リンクを更新できます。サブシステムのライブラリ リンクを更新するを参照してください。

'IncludeCommented'

'on' | {'off'}

検索にコメント付きブロックを含めるかどうかを指定します。

'LoadFullyIfNeeded'

{'on'} | 'off'

'on' の場合は、部分的に読み込まれた任意のモデルを読み込もうとします。'off' の場合は、モデルの読み込みが無効になります。たとえば、読み込み関連の警告が表示されるのを防ぐために、このペアを使用します。

'LookUnderMasks'

{'graphical'}

ワークスペースやダイアログを含まないマスク サブシステムも検索します。

'none'

マスク サブシステムを検索しません。

'functional'

ダイアログをもたないマスク サブシステムも検索します。

'all'

すべてのマスク サブシステムを検索します。

'RegExp'

'on' | {'off'}

'on' の場合、検索式を正規表現として取り扱います。MATLAB® 正規表現の詳細については、「正規表現」を参照してください。

'SearchDepth'

正の整数の文字列

指定されたレベルに検索の深さを限定します ('0' -- 読み込まれたシステムのみ検索します。'1' -- 最上位システムを構成するブロックとサブシステムを検索します。'2' -- 最上位システムとその子システムを検索します)。既定の設定は全レベルです。

'Variants'

この検索条件は、Variant Subsystem とモデル バリアントにのみ適用されます。

{'ActiveVariants'}

アクティブな Variant Subsystem のみを検索します。

'AllVariants'

すべてのバリアントを検索します。

'ActivePlusCodeVariants'

プリプロセッサの条件が生成される場合、すべてのバリアントを検索します。そうでない場合は、アクティブなバリアントのみを検索します。

出力引数

すべて折りたたむ

検出された一致するオブジェクト。以下として返されます。

  • System をパス名またはパス名のセル配列として指定した場合、またはシステムを指定しなかった場合は、パス名のセル配列

  • System をハンドルまたはハンドルのベクトルとして指定した場合は、ハンドルのベクトル

読み込まれたシステムとそのブロックを検索する

読み込まれたすべてのシステムとそのブロックの名前を返します。

load_system('vdp')
find_system

vdp を含む、読み込まれたシステムとライブラリを返します。

特定のシステムとそのブロックを検索する

vdp システムとそのブロックを返します。

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

    'vdp'
    'vdp/Fcn'
    'vdp/More Info'
    'vdp/More Info/Model Info'
    'vdp/Mu'
    'vdp/Mu1'
    'vdp/Mux'
    'vdp/Product'
    'vdp/Scope'
    'vdp/Sum'
    'vdp/x1'
    'vdp/x2'
    'vdp/Out1'
    'vdp/Out2'

読み込まれたモデルの名前を返す

読み込まれたモデル (ブロック線図) のみの名前を返します。ライブラリはモデルとして扱われるため、ライブラリ名も返します。

vdp
open_bd = find_system('type','block_diagram')
	ans = 
    'vdp'
    'simulink'

サブシステムの子を検索する

sldemo_clutch システム内の Unlocked サブシステムの子であるすべての Goto ブロックの名前を返します。

sldemo_clutch
find_system('sldemo_clutch/Unlocked','SearchDepth',1,'BlockType','Goto')
ans =
		'sldemo_clutch/Unlocked/Goto'
		'sldemo_clutch/Unlocked/Goto1'

複数の基準を使用して検索する

vdp システムを検索し、Gain 値が 1 に設定されているすべての Gain ブロックの名前を返します。

vdp
find_system('vdp','BlockType','Gain','Gain','1')
ans =
		'vdp/Mu'

ラインと注釈をハンドルとして返す

vdp システム内のすべてのラインと注釈のハンドルを取得します。'FindAll' を使用すると、指定したシステムの検索方法に関係なく、ハンドルが返されます。

vdp
L = find_system('vdp','FindAll','on','type','line')
A = find_system('vdp','FindAll','on','type','annotation')
L =

   1.0e+03 *

    2.0740
    2.0730
    2.0720
    2.0710
    2.0700
    2.0690
    2.0680
    2.0670
    2.0660
    2.0650
    2.0640
    2.0630
    2.0620
    2.0610
    2.0600
    2.0590
    2.0580


A =

   1.0e+03 *

    2.0760
    2.0750

特定のブロック パラメーター値を検索する

vdp システムと fuelsys システムで値が 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 =
		'fuelsys/Nominal…'
		'vdp/Scope'

部分一致の正規表現検索

正規表現を使用して検索する場合は、一致させる文字列の一部を指定して、その文字列が含まれるすべてのオブジェクトを返すことができます。

sldemo_clutch モデルのすべての Inport ブロックと Outport ブロックを検索します。

sldemo_clutch
find_system('sldemo_clutch','regexp','on','blocktype','port')

サブシステムのライブラリ リンクを更新する

この例では、myModel に、ライブラリ リンクである単一のサブシステムが含まれています。モデルが最後に開かれた後に、ライブラリ内の対応するサブシステムに Gain ブロックが追加されています。

モデルを開きます。find_system を、'off' に設定した 'FollowLinks' と共に使用します。このコマンドは、サブシステムへのライブラリ リンクに従わず、最上位のサブシステムのみを返します。

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

    'myModel'
    'myModel/Subsystem'

find_system を、'on' に設定した 'FollowLinks' と共に使用します。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 を複数回呼び出す場合、ブロック ハンドルを使用する方がブロックの絶対パスを文字列として指定するよりも効率的です。

vdp
sys = get_param('vdp','Handle');
find_system(sys,'BlockDialogParams','0')
ans =
		14.0001
		15.0001
		16.0001

関連する例

R2006a より前に導入

この情報は役に立ちましたか?