Main Content

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

find_mdlrefs

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

Variants オプションは削除される予定です。代わりに MatchFilter を使用してください。詳細については、互換性についての考慮事項を参照してください。

説明

[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 ブロック内のすべてのバリアント モデルを含めます。

メモ

この検索条件は、[バリアント制御モード]expression または label に設定されている Variant Subsystem ブロックにのみ適用されます。MatchFilter オプションを指定して関数 find_mdlrefs を使用すると、すべてのタイプのバリアント ブロックについて動作します。

データ型: char | string

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

データ型: logical

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

データ型: logical

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

データ型: logical

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

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

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

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

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

データ型: char | string

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

名前付き関数は MATLAB® プログラム ファイル内で定義されていなければなりません。関数は要素のハンドルを入力として取り、2 つの出力を返します。

 function [match, prune] = func(element)
 
  • 入力 element は処理されているブロックのハンドルです。

  • 1 つ目の出力 match は logical 値です。false の場合、検索で要素がスキップされます。

  • 2 つ目の出力 prune は、element がサブシステムである場合にのみ適用される、オプションの logical 値です。既定値は false です。この値が true に設定されている場合、サブシステム全体が検索対象から除外されます。

次に例を示します。MatchFilter を使用して、フィルター関数 initFcnMdlBlocks を使用して InitFcn が定義されたモデル内のすべてのモデル ブロックを検索します。

function match = initFcnMdlBlocks(handle)
  match = ~isempty(get_param(handle, 'InitFcn'));
end
addpath(fullfile(matlabroot,'examples','simulink_variants','main'));
model='slexVariantMdlRefCondProp';
load_system(model);
[models,blocks] = find_mdlrefs(model, 'MatchFilter', @initFcnMdlBlocks)

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

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

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

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

    addpath(fullfile(matlabroot,'examples','simulink_variants','main'));
    model='slexVariantMdlRefCondProp';
    load_system(model);
    set_param(model, 'SimulationCommand', 'update');
    [models,blocks] = find_mdlrefs(model, 'MatchFilter', @Simulink.match.activeVariants);

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

    addpath(fullfile(matlabroot,'examples','simulink_variants','main'));
    load_system('slexVariantMdlRefCondProp');
    assignin('base','VSS_MODE',2);
    slexVariantMdlRefCondProp([], [], [], 'compileForRTW');
    [models,blocks]=find_mdlrefs('slexVariantMdlRefCondProp', 'MatchFilter', @Simulink.match.codeCompileVariants);
    slexVariantMdlRefCondProp([], [], [], 'term');

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

データ型: logical

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

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

データ型: logical

出力引数

すべて折りたたむ

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

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

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

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

すべて展開する

R2020b 以降は非推奨

R2021a 以降は警告

R2021a での動作変更

R2006a より前に導入