ドキュメンテーション

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

find_system

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

構文

find_system(sys, 'c1', cv1, 'c2', cv2,...'p1', v1, 'p2', v2,...)

説明

find_system(sys, 'c1', cv1, 'c2', cv2,...'p1', v1, 'p2', v2,...) は、sys で指定されたシステムやサブシステムを、値を cv1cv2 などに限定する c1c2 などの制約条件を使って検索し、パラメーター p1p2 などが値 v1v2 などをもつオブジェクトのハンドルやパスを返します。sys 引数は省略されるか、あるいは、パス名 (またはパス名のセル配列)、ハンドル (またはハンドルのベクトル) になります。ブロックのダイアログ パラメーター値を検索するには、'BlockDialogParams' をパラメーター名として指定します。

    メモ:   引数リスト内で、すべての検索の制約条件は、すべてのパラメーター値の組の前に置く必要があります。

sys がパス名またはパス名からなるセル配列である場合、find_system は検索によって発見したオブジェクトの複数のパス名からなるセル配列を返します。sys がハンドルまたはハンドルからなるベクトルの場合は、find_system は発見したオブジェクトの複数のハンドルからなるベクトルを返します。sys が省略された場合は、find_system はすべての読み込まれたシステムを検索し、パス名からなるセル配列を返します。

パラメーター名の大文字と小文字の区別は無視されます。値の文字列については、既定の場合、大文字と小文字が区別されます (詳細は、検索条件 'CaseSensitive' を参照)。ダイアログ ボックスのエントリに対応するパラメーターは、文字列の値をもちます。モデルとブロック パラメーターのリストについては、「モデル パラメーター」および「ブロック固有のパラメーター」を参照してください。

検索条件として、次のいずれかを指定することができます。

名前

値のタイプ

説明

'SearchDepth'

scalar

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

'LookUnderMasks'

'none'

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

{'graphical'}

ワークスペースやダイアログを含まないマスク サブシステムも検索します。これは既定の設定です。

'functional'

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

'all'

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

'FollowLinks'

'on' | {'off'}

'on' の場合、検索はライブラリ ブロックへリンクされたものを含みます。既定の設定は 'off' です。

'FindAll'

'on' | {'off'}

'on' の場合、システムのラインや端子、注釈に検索の対象が拡張されます。既定の設定は 'off' です。find_system は、このオプションが 'on' のときは sys の配列タイプにかかわらず、ハンドルからなるベクトルを返します。

'CaseSensitive'

{'on'} | 'off'

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

'RegExp'

'on' | {'off'}

'on' の場合、検索式を正規表現として取り扱います。部分一致の検索に使用します。既定の設定は 'off' です。

正規表現を使用した検索を参照してください。

'LoadFullyIfNeeded'

{'on'} | 'off'

'on' の場合は、部分的に読み込まれた任意のモデルを読み込もうとします。既定の設定は 'on' です。'off' の場合は、たとえば読み込み関連の警告が表示されるのを防ぐために、モデルの読み込みを無効化します。

'Variants'

{'ActiveVariants'}

(既定の設定) アクティブな Variant Subsystem のみを検索します。

'AllVariants'

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

'ActivePlusCodeVariants'

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

'IncludeCommented'

'on' | {'off'}

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

表でかっこ内に示されているのは、既定の条件値です。'constraint' を省略した場合、find_system は既定の条件値を利用します。

次のコマンドは、すべての読み込まれたシステムとブロックの名前を含むセル配列を返します。

find_system

次のコマンドは、読み込まれたすべてのブロック線図の名前を返します。

open_bd = find_system('type', 'block_diagram')

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

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

次のコマンドは、Gain パラメーターの値が 1 であるような vdp システム内のすべての Gain ブロックの名前を返します。

vdp
gb = find_system('vdp', 'BlockType', 'Gain')
find_system(gb, 'Gain', '1')

上記の 2 つのコマンドは、次のコマンドと等価です。

vdp
find_system('vdp', 'BlockType', 'Gain', 'Gain', '1')

次のコマンドは、vdp システム内のすべてのラインと注釈のハンドルを得ます。

vdp
sys = get_param('vdp', 'Handle');
l = find_system(sys, 'FindAll', 'on', 'type', 'line');
a = find_system(sys, 'FindAll', 'on', 'type', 
'annotation');

LoadFullyIfNeeded 検索条件を無効にします。

find_system(gcs,'LoadFullyIfNeeded','off','ParameterName','ParameterValue')

任意のブロックのダイアログ パラメーター値内で X の部分一致を検索します。

find_system('Regexp', 'on', 'BlockDialogParams','X')

特定のタグがあるブロックの検索

ブロックの Tag プロパティを使用してブロックを検索します。

  1. vdp モデルを開きます。

    open_system(‘vdp’)
  2. Sum ブロックを右クリックし、メニューから [プロパティ] を選択します。[ブロック プロパティ: Sum] ダイアログが開きます。

  3. [タグ] ボックスに「sum blocks」と入力し、[OK] をクリックします。

  4. タグ sum blocks を検索します。

    find_system('vdp', 'Tag', 'sum blocks')
    ans = 
        'vdp/Sum'

ブロックのダイアログ パラメーター値の検索

ブロックの「ダイアログ パラメーター」値を検索するには、パラメーター 'BlockDialogParams' を使用します。たとえば、値が文字列 'X+1' であるダイアログ パラメーターを含んだ任意のブロックを検索するには、次のように入力します。

find_system('BlockDialogParams','X+1')

パラメーター値内で部分一致を見つけるには、どの find_system コマンドに対しても、まずオプション 'Regexp', 'on' を指定します。上記の例の場合、パラメーター値 'X+1' 内で X を見つけるには、次のように入力します。

find_system('Regexp', 'on', 'BlockDialogParams','X')

正規表現を使用した検索

正規表現の検索条件 'RegExp''on' に指定した場合、find_system は検索文字列を正規表現として取り扱います。正規表現とは、特殊なパターン マッチングの意味をもつ文字列です。詳細は、「正規表現」を参照してください。

正規表現は、find_system を使って行える検索のタイプを大きく拡張します。たとえば、正規表現を使って部分的なワード検索を行うことができます。指定した文字からなる文字列が先頭または中間または末尾に指定パラメーターをもつすべてのオブジェクトを検索することができます。

Simulink® システムの検索に正規表現を使うためには、検索条件 'regexp'find_system コマンド内で 'on' に指定し、通常の検索文字列で使う位置に正規表現を使います。

たとえば、次のコマンドは Simulink に付属している sldemo_clutch モデルのすべての inport および outport ブロックを検索します。

sldemo_clutch
find_system('sldemo_clutch', 'regexp', 'on', 'blocktype', 'port')
この情報は役に立ちましたか?