Main Content

このページの翻訳は最新ではありません。ここをクリックして、英語の最新版を参照してください。

find_mdlrefs

モデルの階層構造内の参照モデルと Model ブロックの検索

説明

[models,blocks] = find_mdlrefs(system) は、指定されたシステムの下のモデルの階層構造内で、すべての参照モデルと Model ブロックを検索します。関数 find_mdlrefs は、モデルを一時的に読み込みます。

[models,blocks] = find_mdlrefs(system,Name,Value) は、1 つ以上の名前と値のペアを使用して、追加の検索オプションを提供します。たとえば、モデルを一時的に読み込むのではなく読み込んだままにする場合、KeepModelsLoadedtrue に設定します。

すべて折りたたむ

指定されたモデルによって参照されるすべてのモデルの参照モデルおよび Model ブロックを検索します。

load_system('sldemo_mdlref_basic');
[myModels,myModelBlks] = find_mdlrefs('sldemo_mdlref_basic')
myModels = 2x1 cell
    {'sldemo_mdlref_counter'}
    {'sldemo_mdlref_basic'  }

myModelBlks = 3x1 cell
    {'sldemo_mdlref_basic/CounterA'}
    {'sldemo_mdlref_basic/CounterB'}
    {'sldemo_mdlref_basic/CounterC'}

既定では、関数 find_mdlrefs はまだ読み込まれていないモデルを読み込んでから閉じます。読み込まれているモデルを特定するには、関数 find_system を使用します。

find_mdlrefs('sldemo_mdlref_depgraph');
find_system('type','block_diagram')
ans =

  0x1 empty cell array

モデルの階層構造内のすべてのモデルを検索して読み込むには、KeepModelsLoadedtrue に設定します。

find_mdlrefs('sldemo_mdlref_depgraph','KeepModelsLoaded',true);
find_system('type','block_diagram')
ans = 7x1 cell
    {'sldemo_mdlref_thermostat'  }
    {'sldemo_mdlref_heater'      }
    {'sldemo_mdlref_F2C'         }
    {'sldemo_mdlref_outdoor_temp'}
    {'sldemo_mdlref_house'       }
    {'sldemo_mdlref_heat2cost'   }
    {'sldemo_mdlref_depgraph'    }

最上位モデルとすべての参照モデルは読み込まれたままになります。sldemo_mdlref_depgraph を開くと、参照モデルを開いて参照モデルが読み込まれるのを待たずにモデルの階層構造を移動できます。

入力引数

すべて折りたたむ

システム名、ブロック パス、またはハンドル。文字ベクトル、string スカラー、または数値スカラーとして指定します。

システムは SLX ファイル、MDL ファイル、Model ブロック、または Subsystem ブロックでなければなりません。

ファイル名を指定するときに、ファイルの拡張子を含めないでください。

データ型: double | char | string

名前と値のペアの引数

オプションのコンマ区切りされた Name,Value の引数ペアを指定します。ここで、Name は引数名、Value は対応する値です。Name は引用符で囲まなければなりません。Name1,Value1,...,NameN,ValueN のように、複数の名前と値のペアの引数を任意の順序で指定できます。

例: refModels = find_mdlrefs(topmodel,'KeepModelsLoaded',true,'ReturnTopModelAsLastElement',false)

検索するレベル。'AllLevels' と数値または logical 1 (true) または 0 (false) で構成されるコンマ区切りのペアとして指定します。

  • true — 指定された system のモデルの階層構造内のすべての Model ブロックを検索します。

  • false — 最上位レベルのシステムのみを検索します。

データ型: logical

モデルを読み込まれたままにするオプション。'KeepModelsLoaded' と数値または logical 1 (true) または 0 (false) で構成されるコンマ区切りのペアとして指定します。

既定では、関数はまだ読み込まれていないモデルを読み込んでから閉じます。モデルを読み込んだままにするには、この引数を true に設定します。モデルを読み込んだままにすると、モデルの検索後にモデルを操作する予定がある場合に役立ちます。

データ型: logical

保護モデルを検索結果に含めるオプション。'IncludeProtectedModels' と数値または logical 1 (true) または 0 (false) で構成されるコンマ区切りのペアとして指定します。

この設定は、返される参照モデルのリストにのみ影響します。返される Model ブロックのリストには影響しません。

データ型: logical

バリアント モデルを検索結果に含めるオプション。'Variants''ActivePlusCodeVariants''ActiveVariants'、または 'AllVariants' で構成されるコンマ区切りのペアとして指定します。

  • 'ActivePlusCodeVariants'[バリアントのアクティベーションのタイミング] パラメーターを [コードのコンパイル] に設定している Variant Subsystem ブロックのすべてのバリアント モデルを含めます。

  • 'ActiveVariants'Variant Subsystem ブロックのアクティブなバリアント モデルを含めます。

  • 'AllVariants'Variant Subsystem ブロックにすべてのバリアント モデルを含めます。

メモ

この検索条件は、Variant Subsystem にのみ適用されます。その他すべてのバリアント ブロックに対して実行するには、Variants MatchFilter オプションを使用します。

データ型: char | string

検索時に大文字小文字を区別するオプション。大文字小文字を区別する検索の場合は true、大文字小文字を区別しない検索の場合は false として指定します。

データ型: logical

ライブラリ リンクに従って検索するオプション。true または false として指定します。true の場合、検索はライブラリ ブロックへリンクされたものを含みます。

データ型: logical

コメント付きブロックを検索に含めるオプション。true または false として指定します。

データ型: logical

マスクされたブロックを検索するオプション。次として指定します。

  • 'all' — マスクされたすべてのブロック内を検索します。

  • 'none' — マスクされたシステムでの検索を回避します。

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

  • 'graphical' — ワークスペースまたはダイアログをもたないマスク サブシステムも検索します。

データ型: char | string

Variant Subsystem を検索するオプション。以下として指定します。

  • 'AllVariants' — すべてのバリアントの選択を検索します。

  • 'ActiveVariants' — アクティブなバリアントの選択のみ検索します。

  • 'ActivePlusCodeVariants''Generate preprocessor conditionals' がアクティブになっているすべてのバリアントの選択を検索します。そうでない場合は、アクティブなバリアントの選択のみを検索します。

メモ

この検索条件は、Variant Subsystem にのみ適用されます。その他すべてのバリアント ブロックに対して実行するには、Variants MatchFilter オプションを使用します。

データ型: char | string

ブロック、システム、ライン、端子、注釈など、検索内の要素に一致させる関数ハンドル。MatchFilter を使用して、検索で要素を選択すべきか、スキップすべきかどうかを決定します。

例: フィルター関数 initFcnMdlBlocks を定義することで、MatchFilter を使用してモデル内のすべての Model ブロックを検索します。

 blks = find_mdlrefs('ModelName', 'MatchFilter', @initFcnMdlBlocks)

function match = initFcnMdlBlocks(handle)
    match = ~isempty(get_param(hdl, 'InitFcn'));
end

例: 2 番目の出力引数を除いて MatchFilter を使用します。

 [match, prune] = fcn(element)
 where
  element - Handle of the block being processed.
  match   - Logical. If false, skip the element.
  prune   - Optional logical (default false). If true, do not look in subsystems.

バリアント: Simulink は、マッチ フィルター関数 Simulink.match.activeVariantsSimulink.match.codeCompileVariants を提供します。これらの関数を使用して、アクティブなバリアントとコード コンパイルのバリアント ブロックを検索できます。これを行うには、モデルをコンパイルして、適切な MatchFilter オプションを適用します。

  • Simulink.match.activeVariants - モデルのコンパイル後にシミュレーションでアクティブなブロックと一致

  • Simulink.match.codeCompileVariants - モデルのコンパイル後に生成されたコードの一部であるブロックと一致

例: Simulink.match.activeVariants オプションを使用して、モデルでアクティブなバリアントを検索します。

set_param(model, 'SimulationCommand', 'update');
codecompileBlks = find_mdlrefs(model, 'MatchFilter', @Simulink.match.activeVariants);

    例: Simulink.match.codeCompileVariants オプションを使用して、生成された C コードの一部であるバリアントの選択を検出します。

     MODEL([],[],[],'compileForRTW')
     find_mdlrefs(MODEL, 'MatchFilter', @Simulink.match.codeCompileVariants);
     MODEL([],[],[],'term')

      コメント付きブロックを検索結果に含めるオプション。'IncludeCommented' と数値または logical 1 (true) または 0 (false) で構成されるコンマ区切りのペアとして指定します。

      データ型: logical

      指定されたシステムを検索結果に含めるオプション。'ReturnTopModelAsLastElement' と数値または logical 1 (true) または 0 (false) で構成されるコンマ区切りのペアとして指定します。

      既定では、参照モデルの返されたリスト内の最後の要素は、system 引数で指定したモデル、ライブラリ、またはサブシステム ファイルの名前です。ブロックを指定する場合、最後の要素はブロックを含むファイルの名前です。

      データ型: logical

      出力引数

      すべて折りたたむ

      モデルの名前。文字ベクトルの cell 配列として返されます。

      既定では、最後の要素は、system 引数で指定したモデル、ライブラリ、またはサブシステム ファイルの名前です。ブロックを指定する場合、最後の要素はブロックを含むモデル、ライブラリ、またはサブシステム ファイルの名前です。

      Model ブロックの名前。文字ベクトルの cell 配列として返されます。

      互換性についての考慮事項

      すべて展開する

      R2020b 以降は非推奨

      R2006a より前に導入