Main Content

find

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

説明

objArray = find(location,propertyName,propertyValue) は、値が propertyValuepropertyName というプロパティをもつ location の階層内にある Stateflow® API オブジェクトの配列を返します。

objArray = find(location,"-regexp",propertyName,propertyValue) は、値が propertyValue で指定された正規表現に一致する propertyName というプロパティをもつオブジェクトを返します。詳細については、正規表現を参照してください。

objArray = find(location,"-isa",objectType) は、objectType で指定されたタイプをもつ location の階層内にあるオブジェクトを返します。

objArray = find(location,"-depth",depth) は、location の階層の指定された深さまたはそれを超える深さにあるオブジェクトを返します。

objArray = find(location,"-property",propertyName) は、指定された名前のプロパティをもつオブジェクトを返します。

objArray = find(location,"-method",functionName) は、指定された名前のオブジェクト関数をもつオブジェクトを返します。

objArray = find(location,"-function",function) は、指定された関数が true を返すオブジェクトを返します。

objArray = find(location,"-not",___) は、指定された検索条件と一致しないオブジェクトを返します。検索条件は、"-depth""-regexp" を除く前述の構文のいずれかを使用して指定できます。

objArray = find(location,___,logicalOp,___) は、前述の構文を使用して指定された検索条件を結合します。次のいずれかの論理演算を使用します。

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

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

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

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

すべて折りたたむ

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

namedIsA = find(ch,"Name","A")

プロパティの名前と値を PropertyName=PropertyValue として指定できます。PropertyName は引用符で囲まれません (R2021a 以降)。この構文は、引用符を使用する他の引数の後に表示されなければなりません。

namedIsA = find(ch,Name="A")

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

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

プロパティの名前と値を PropertyName=PropertyValue として指定できます。PropertyName は引用符で囲まれません (R2021a 以降)。この構文は、引用符を使用する他の引数の後に表示されなければなりません。

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

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

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

チャート ch のステートのうち、Name プロパティが文字 A で始まるものを検索します。

stateNameStartsWithA = find(ch,"-isa","Stateflow.State", ...
    "-and","-regexp","Name","^A")

プロパティの名前と値を PropertyName=PropertyValue として指定できます。PropertyName は引用符で囲まれません (R2021a 以降)。この構文は、引用符を使用する他の引数の後に表示されなければなりません。

stateNameStartsWithA = find(ch,"-isa","Stateflow.State", ...
    "-and","-regexp",Name="^A")

チャート ch の階層の上位 2 レベルにあるオブジェクトを検索します。

depthTwoObjects = find(ch,"-depth",2)

チャート ch のシンボルを検索します。シンボルには、Stateflow.DataStateflow.EventStateflow.Message、および Name プロパティをもつその他の非チャート オブジェクトが含まれます。

symbols = find(ch,"-property","Name", ...
    "-not","-isa","Stateflow.Chart")

チャート ch のグラフィカル オブジェクトを検索します。グラフィカル オブジェクトは、fitToView というオブジェクト関数をもつ非チャート オブジェクトです。

graphicalObjects = find(ch,"-method","fitToView", ...
    "-not","-isa","Stateflow.Chart")

チャート ch のオブジェクトのうち、信号のログ作成が有効になっているものを検索します。信号のログ作成は、サブプロパティ LoggingInfo.DataLoggingtrue である場合に有効になります。

f = @(h) h.LoggingInfo.DataLogging;
signalLoggingOn = find(ch,"-function",f);

入力引数

すべて折りたたむ

検索する場所。Simulink.Root オブジェクト、Simulink.BlockDiagram オブジェクト、または次のいずれかのタイプの Stateflow API オブジェクトとして指定します。

プロパティの名前。string スカラーまたは文字ベクトルとして指定します。

プロパティの値。プロパティに応じた形式で指定します。

検索対象のオブジェクトのタイプ。string スカラー、文字ベクトル、またはオブジェクトのクラス ハンドルとして指定します。

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

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

オブジェクト階層の検索深度。非負の整数のスカラーまたは inf として指定します。inf は、階層のすべてのレベルを検索する場合に使用します。

オブジェクト関数の名前。string スカラーまたは文字ベクトルとして指定します。

フィルター処理関数。関数ハンドルとして指定します。この関数は、オブジェクトが一致しているかどうかを示す logical スカラー値を返す必要があります。

出力引数

すべて折りたたむ

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

ヒント

  • サブプロパティの値に基づいて検索結果を制限するには、"-function" と関数ハンドルを使用して find を呼び出します。例については、信号のログ作成が有効なオブジェクトの検索を参照してください。

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

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

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

    • 関数 load_system (Simulink) を呼び出してライブラリ モデルを読み込みます。

    • 引数 FollowLinkson に設定して関数 find_system (Simulink) を呼び出す。

      find_system(FollowLinks="on");

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

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

バージョン履歴

R2006a より前に導入