Main Content

find

階層内で指定したオブジェクトの識別

説明

objArray = find(location,Name,Value) は、1 つ以上のペアの引数 Name,Value で指定された条件と一致する、location の階層内にあるオブジェクトの配列を返します。

objArray = find(location,"-not",Name,Value) は、後続のペアの引数 Name,Value で指定された条件と一致しないオブジェクトを返します。

objArray = find(location,"-regexp",Name,Value) は、後続のペアの引数 Name,Value に正規表現が含まれることを示します。詳細については、正規表現を参照してください。

objArray = find(location,___,logicalOp,___) は、次のいずれかの論理演算子を使用して検索条件を結合します。

  • "-and" — 結果は両方の検索条件と一致する必要があります。

  • "-or" — 結果は少なくとも一方の条件と一致する必要があります。

  • "-xor" — 結果は一方の条件のみと一致する必要があります。

複数の論理演算子を使用する場合、-and の優先順位が最も高く、-or-xor は右結合です。論理演算子が指定されていない場合、-and が想定されます。

すべて折りたたむ

チャート ch のすべてのステートを検索します。

states = find(ch,"-isa","Stateflow.State")

チャート ch のステートのうち、NameA であるものをすべて検索します。

statesNamedA = find(ch,"-isa","Stateflow.State","-and","Name","A")

チャート ch のオブジェクトのうち、Name プロパティが文字 A で始まるものをすべて検索します。

startsWithA = find(ch,"-regexp","Name","^A")

チャート ch のオブジェクトのうち、fitToView というオブジェクト関数をもたないものをすべて検索します。

nongraphical = find(ch,"-not","-method","fitToView")

myModel という Simulink® モデルのすべてのチャートを検索します。

f = @(h) (strcmp(h.Machine.Name,"myModel"));
ch = find(sfroot,"-isa","Stateflow.Chart","-and","-function",f);

入力引数

すべて折りたたむ

検索する場所。次のいずれかのタイプの Stateflow® API オブジェクトとして指定します。

名前と値の引数

例: find(ch,"Name","A") は、チャート ch のオブジェクトのうち、Name プロパティが A であるものをすべて検索します。

オプションの Name,Value の引数ペアをコンマ区切りで指定します。Name は引数名で、Value は対応する値です。Name は引用符で囲まなければなりません。Name1,Value1,...,NameN,ValueN のように、複数の名前と値のペア引数を任意の順番で指定できます。ここに挙げた引数 Name,Value の他に、Stateflow API プロパティの名前と、それに対応する値を使用できます。詳細については、Stateflow API のオブジェクトとプロパティの概要を参照してください。

検索対象のオブジェクトのタイプ。"-isa" と文字ベクトルまたはオブジェクトのクラス ハンドルで構成されるコンマ区切りのペアとして指定します。

例: find(ch,"-isa","Stateflow.State") は、チャート ch のすべてのステートを検索します。

例: find(ch,"-isa",class(object)) は、object と同じ型のすべてのオブジェクトを検索します。

オブジェクト階層の検索深度。"-depth" と非負の整数のスカラーまたは inf で構成されるコンマ区切りのペアとして指定します。

例: find(ch,"-depth",2) は、チャート ch の階層の上位 2 レベルにあるすべてのオブジェクトを検索します。

フィルター処理関数。"-function" と関数ハンドルで構成されるコンマ区切りのペアとして指定します。この関数は検索で参照した各オブジェクトを評価し、オブジェクトが一致しているかどうかを示す logical スカラー値を返します。

例: find(ch,"-function",f) は、ftrue であるすべてのオブジェクトを検索します。

検索対象のオブジェクトに属するオブジェクト関数。"-method" と文字ベクトルで構成されるコンマ区切りのペアとして指定します。

例: find(ch,"-method","dialog") は、チャート ch のオブジェクトのうち、dialog というオブジェクト関数をもつものをすべて検索します。

検索対象のオブジェクトに属するプロパティ。"-property" と文字ベクトルで構成されるコンマ区切りのペアとして指定します。

例: find(ch,"-property","HasOutputData") は、チャート ch のオブジェクトのうち、HasOutputData というプロパティをもつものをすべて検索します。

出力引数

すべて折りたたむ

検索結果。Stateflow API オブジェクトの配列として返されます。

ヒント

  • 関数 findSimulink.RootSimulink.BlockDiagram、または Stateflow.Machine オブジェクトで使用すると、指定した検索条件に一致する Simulink オブジェクトを返すことができます。たとえば、次のコマンドを使用すると、ABC という名前の Simulink サブシステムまたはブロックを返すことができます。

    find(sfroot,"Name","ABC")

  • リンクされた Stateflow チャートを参照するメイン モデルを開いた場合、リンクされたチャートを Stateflow API が検索できるとは限りません。リンクされたライブラリ チャートのオブジェクトにアクセスするには、最初に次のいずれかのタスクを実行してライブラリ モデルを Simulink ワークスペースに読み込みます。

    • ライブラリ モデルを開く。

    • リンクされたサブシステムまたはブロックをメイン モデルで表示する。

    • モデルをコンパイルまたはシミュレートする。

バージョン履歴

R2006a より前に導入