| Using Simulink | ![]() |
表示
find_system(sys, 'c1', cv1, 'c2', cv2,...'p1', v1, 'p2', v2,...)
詳細
find_system(sys, 'c1', cv1, 'c2', cv2,...'p1', v1, 'p2', v2,...) は、sys で指定された単数または複数のシステムやサブシステムを c1, c2 等によって指定された制約条件を用いて検索し、指定されたパラメータ値 v1, v2 等をもつオブジェクトに対するハンドルや絶対パスを出力します。sys にはパス名(または複数のパス名からなるセル配列)、ハンドル(または複数のハンドルからなるベクトル)の双方を指定できますし、入力を省略することもできます。sys がパス名またはパス名からなるセル配列に場合は、 find_system は検索によって発見したオブジェクトに対する複数のパス名からなるセル配列を出力します。sys はハンドルまたはハンドルからなるベクトルの場合は、find_system は発見したオブジェクトに対する複数のハンドルからなるベクトルを出力します。sys が省略された場合は、find_system はすべてのオープンシステムを検索しパス名からなるセル配列を出力します。
パラメータ名については、大文字と小文字の区別はありません。値の文字列については、デフォルトで大文字と小文字を区別します(詳細は、'CaseSensitive' サーチの制約を参照)。ダイアログボックスのエントリに対応するパラメータは、文字列の値をもちます。モデルとブロックパラメータのリストについては、付録A を参照してください。
検索の制約条件として、つぎのいずれかを指定することができます。
表では、括弧内にデフォルトの制約の値を示しています。 'constraint' が省略されると、find_system はデフォルトの制約値を利用します。
例題
つぎのコマンドは、すべてのオープンシステムとブロックの名前を含むセル配列を出力します。
find_system
つぎのコマンドは、開いているすべてのブロック線図の名前を出力します。
open_bd = find_system('type', 'block_diagram')
つぎのコマンドは、clutch システム内の Unlocked サブシステムの子であるすべてのGotoブロックの名前を出力します。
find_system('clutch/
Unlocked','SearchDepth',1,'BlockType','Goto')
つぎのコマンドは、Gain パラメータの値が1であるような vdp システム内のすべてのGainブロックの名前を出力します。
gb = find_system('vdp', 'BlockType', 'Gain')
find_system(gb, 'Gain', '1')
find_system('vdp', 'BlockType', 'Gain', 'Gain', '1')
これらのコマンドは、vdp システム内のすべてのラインと注釈のハンドルを出力します。
sys = get_param('vdp', 'Handle');
l = find_system(sys, 'FindAll', 'on', 'type', 'line');
a = find_system(sys, 'FindAll', 'on', 'type', 'annotation');
正規表現の検索
'RegExp'制約を 'on' と指定した場合、find_system はサーチ文字列を正規表現として取り扱います。正規表現とは、キャラクタが特殊なパターンマッチングの意味をもつ文字列です。たとえば、ピリオド(.)は正規表現ではそれ自身だけでなくそれ以外のキャラクタとマッチします。
正規表現は、find_system を使って行うことができる検索のタイプを大きく拡張します。たとえば、正規表現を使って部分ワードサーチを行うことができます。指定したキャラクタからなる文字列を含む、または先頭および末尾にもつパラメータをもつすべてのオブジェクトに対する検索を行うことができます。
正規表現を効果的に利用するためには、正規表現に含まれる特殊キャラクタの意味を知っておく必要があります。つぎの表は、find_subystem がサポートする特殊キャラクタをリストし、それらの使用法を説明します。
Simulinkシステムの検索に正規表現を使うためには、'regexp' 検索制約条件を find_system コマンド内で 'on' と指定し、通常の検索文字列で使う位置で正規表現を使います。
たとえば、つぎのコマンドはSimulinkに付属している clutch モデルのすべてのinportおよびoutportブロックを検索します。
find_system('clutch', 'regexp', 'on', 'blocktype', 'port')
参考
get_param, set_param
| delete_line | gcb | ![]() |