メインコンテンツ

slreportgen.finder.ModelVariableFinder クラス

名前空間: slreportgen.finder
スーパークラス: mlreportgen.finder.Finder

Simulink モデルで使用されている変数を検索する

説明

クラス slreportgen.finder.ModelVariableFinder のオブジェクトを使用して、Simulink® モデルで使用されている変数を検索します。

slreportgen.finder.ModelVariableFinder クラスは handle クラスです。

クラス属性

HandleCompatible
true

クラス属性の詳細については、クラスの属性を参照してください。

作成

説明

finder = slreportgen.finder.ModelVariableFinder(container) は、指定された container (Simulink モデルやサブシステムなど) で使用されている変数を検索するファインダーを作成します。Container プロパティを参照してください。ファインダーのプロパティを設定することで、検索を制約できます。ファインダーのメソッドを使用して検索を実行します。

メモ

このファインダーには、検索結果の取得方法として次のオプションが用意されています。

  • 検索結果を配列として返すには、find メソッドを使用します。結果をレポートに直接追加するか、for ループで結果を処理します。

  • 一度に 1 つずつ結果を反復処理するには、while ループで hasNext メソッドと next メソッドを使用します。

これらのオプションに、パフォーマンス上の差はありません。

finder = slreportgen.finder.ModelVariableFinder(Name=Value) は、名前と値の引数を使用してプロパティを設定します。複数の名前と値の引数を任意の順序で指定できます。

プロパティ

すべて展開する

検索するモデルまたはサブシステム。モデルまたはサブシステムへのパスを含む string スカラーまたは文字ベクトルとして、またはモデルまたはサブシステムのハンドルとして指定します。

属性:

GetAccess
public
SetAccess
public

正規表現のマッチングを行うかどうか。"on" または "off" として指定するか、数値または logical の 1 (true) または 0 (false) として指定します。"on" の値は true と等価であり、"off" の値は false と等価です。したがって、このプロパティの値を logical 値として使用できます。値は、matlab.lang.OnOffSwitchState型の on/off の logical 値として保存されます。

  • "on" — NameSourceType、および Users の各プロパティ値に対して正規表現のマッチングを有効にします。

  • "off" — 正規表現のマッチングを無効にします。

正規表現の詳細については、正規表現を参照してください。

属性:

GetAccess
public
SetAccess
public

モデルのコンパイル済みステータス。次のいずれかの値として指定します。

説明
"compiled"検索前にモデルをコンパイルすることで、最新の結果を取得します。
"cached"前回のコンパイル中にキャッシュされたデータを使用することで、結果をより迅速に取得します。

参照モデル内で変数を検索するかどうか。次のいずれかの値として指定します。

説明
true参照モデル内で変数を検索します。(既定)
false参照モデル内で変数を検索しません。

メモ

"off""on" を使用して SearchRederencedModels プロパティを設定することもできます。

属性:

GetAccess
public
SetAccess
public

データ型: logical

検索する変数の名前。文字ベクトルまたは string スカラーとして指定します。Regexp プロパティが "on" に設定されている場合、Name の値を正規表現にできます。Name プロパティが空の場合、ファインダーは変数名に基づいて検索しません。

例: "vehicledata"

例: "^vehicle"

属性:

GetAccess
public
SetAccess
public

データ型: char | string

変数定義のソース。次のいずれかの値として指定します。

  • "base workspace"

  • "model workspace"

  • "mask workspace"

  • "data dictionary"

SourceType を設定する場合、ファインダーは指定されたソースからの変数のみを返します。Regexp プロパティが "on" に設定されている場合、SourceType の値を正規表現にできます。SourceType プロパティが空の場合、ファインダーは検索結果をソースでフィルターを適用しません。

例: finder.SourceType = "model workspace" は、モデル ワークスペースに定義されているすべての変数を返します。

例: Regexp プロパティが "On" に設定されている場合、finder.SourceType = "(base|mask) workspace" は、ベース ワークスペースまたはマスク ワークスペースに定義されているすべての変数を返します。

例: Regexp プロパティが "On" に設定されている場合、finder.SourceType = "\w* workspace" は、ベース ワークスペース、マスク ワークスペース、またはモデル ワークスペースに定義されているすべての変数を返します。

属性:

GetAccess
public
SetAccess
public

データ型: char | string

変数を検索するブロックの名前。1 つのブロックを文字ベクトルまたは string スカラーとして指定します。複数のブロックを文字ベクトルの配列または string 配列として指定します。ファインダーは、指定された 1 つ以上のブロックで使用されている変数を返します。Users プロパティを設定しない場合、ファインダーはモデル全体またはサブシステム全体を検索します。Regexp プロパティが true に設定されている場合、Users プロパティを正規表現に設定できます。

たとえば、MyModelGain1 ブロックまたは Gain2 ブロックのいずれかで使用されているすべての変数を検索するには、Users プロパティで両方のブロックを指定できます。

myFinder.Users = ["myModel/Gain1", "myModel/Gain2"];

または、両方のブロック名に一致する正規表現を使用することもできます。

myFinder.Regexp = "on";
myFinder.Users = "Gain(1|2)";

属性:

GetAccess
public
SetAccess
public

データ型: char | string

マスク サブシステム内を検索するかどうか。次のいずれかの値として指定します。

説明
trueマスク サブシステム内で変数を検索します。(既定)
falseマスク サブシステム内で変数を検索しません。

データ型: logical

ライブラリ リンクをたどるかどうか。次のいずれかの値として指定します。

説明
trueライブラリ ブロックまでリンクをたどります。ライブラリ リンクがサブシステムとして扱われます。(既定)
falseライブラリ ブロックまでリンクをたどりません。ライブラリ リンクがブロックとして扱われます。

属性:

GetAccess
public
SetAccess
public

データ型: logical

非アクティブなバリアント システムの変数を含めるかどうか。次のいずれかの値として指定します。

説明
false非アクティブなバリアント システムで使用されている変数を含めません。(既定)
true

非アクティブなバリアント システムで使用されている変数を含めます。非アクティブなバリアント内の変数は、それを含む Variant Subsystem または Variant Model ブロックの [バリアントのアクティベーションのタイミング] コンフィギュレーション パラメーターが [コードのコンパイル] または [ブロック線図の更新時にすべての選択肢を解析] に設定されている場合にのみ検出されます。非アクティブなシステムである Model ブロック内の変数を含めるには、このファインダーの SearchReferencedModels プロパティも true に設定する必要があります。

メモ

"on""off" を使用して IncludeInactiveVariants プロパティを設定することもできます。

属性:

GetAccess
public
SetAccess
public

データ型: logical

検索対象とする Simulink.VariableUsage オブジェクトのプロパティ。名前と値の引数の cell 配列として指定します。ファインダーは、関連付けられた Simulink.VariableUsage オブジェクトが指定のプロパティ値をもつ変数のみを返します。

例: finder.Properties = {"SourceType", "base workspace"}

属性:

GetAccess
public
SetAccess
public

データ型: cell

メソッド

すべて展開する

すべて折りたたむ

モデル内で変数を検索し、結果をレポートに直接追加します。

Simulink レポートを作成します。

rpt = slreportgen.report.Report("MyReport","pdf");

章を作成します。

chapter = mlreportgen.report.Chapter();
chapter.Title = "Model Variable Finder Example";

モデルを読み込みます。

model_name = "sf_car";
load_system(model_name)

変数ファインダーを作成します。

finder = slreportgen.finder.ModelVariableFinder(model_name);

ファインダーがマスク システム内の変数を含めるよう指定します。

finder.LookUnderMasks = "all";

モデルで使用されている変数を検索します。

results = find(finder);

結果を章に追加します。

add(chapter,results);

章をレポートに追加します。

add(rpt,chapter);

レポートを閉じ、ビューアーを開きます。

close(rpt);
rptview(rpt);

モデル内で vehicle で始まる変数を検索し、結果をレポートに追加します。

モデルを読み込みます。

model_name = "sf_car";
load_system(model_name)

変数ファインダーを作成します。

finder = slreportgen.finder.ModelVariableFinder(model_name);

正規表現のマッチングを有効にします。

finder.Regexp = true;

正規表現 ^vehicle を使用して、検索を vehicle で始まる結果に制約します。

finder.Name = "^vehicle";

モデルで使用されている一致する変数を検索します。

results = find(finder)
results = 
  ModelVariableResult with properties:

            Object: [1×1 Simulink.VariableUsage]
              Name: "vehicledata"
            Source: "sf_car"
        SourceType: "model workspace"
             Users: "sf_car/Vehicle"
    ModelBlockPath: []
               Tag: []

検索結果を反復処理し、結果ごとにモデル変数レポーターのプロパティを設定することで、レポートにおけるモデル変数の書式設定をカスタマイズします。

レポートを作成します。

rpt = slreportgen.report.Report("MyReport","pdf");

章を作成します。

chapter = mlreportgen.report.Chapter();
chapter.Title = "Model Variable Reporter Example";

モデルを読み込みます。

model_name = "sf_car";
load_system(model_name);

モデル内の変数を検索します。

finder = slreportgen.finder.ModelVariableFinder(model_name);

結果ごとに、その結果の ModelVariable レポートを取得し、数値の書式設定をカスタマイズして、レポーターを章に追加します。

while hasNext(finder)
    result = next(finder);
    reporter = getReporter(result);
    reporter.NumericFormat = "%.4f";    
    add(chapter,reporter);
end

章をレポートに追加します。

add(rpt,chapter);

レポートを閉じ、ビューアーを開きます。

close(rpt);
rptview(rpt);

バージョン履歴

R2019b で導入

すべて展開する