Main Content

slreportgen.finder.ModelVariableFinder クラス

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

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

R2019b 以降

説明

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 スカラーまたは文字ベクトルとして、またはモデルまたはサブシステムのハンドルとして指定します。

正規表現のマッチング。false または true として指定します。Regexpfalse の場合、正規表現のマッチングは有効になりません。Regexptrue の場合、正規表現のマッチングは NameSourceType、および Users の各プロパティ値に対して有効になります。たとえば、次のコードは vehicle で始まる変数を検索します。

次のコマンドを実行して、この例で使用するサポート ファイルにアクセスします。

openExample('rptgenext/SimulinkReportGeneratorFilesExample');
finder = slreportgen.finder.ModelVariableFinder("sf_car");
finder.Regexp = true;
finder.Name = "^vehicle";

メモ

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

正規表現を参照してください。

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

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

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

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

メモ

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

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

例: "vehicledata"

例: "^vehicle"

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

  • "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" は、ベース ワークスペース、マスク ワークスペース、またはモデル ワークスペースに定義されているすべての変数を返します。

変数を検索するブロックの名前。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)";

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

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

メモ

"all""none" を使用して LookUnderMasks プロパティを設定することもできます。

データ型: logical

変数の検索時にライブラリ リンクをたどるかどうか。次の表のいずれかの値として指定します。

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

メモ

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

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

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

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

メモ

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

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

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

メソッド

すべて展開する

すべて折りたたむ

モデル内で変数を検索し、結果をレポートに直接追加します。ファインダーがマスク システム内の変数を含めるよう指定します。

% Create a Simulink Report
rpt = slreportgen.report.Report("MyReport","pdf");

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

% Load the model
model_name = "sf_car";
load_system(model_name)

% Create a variable finder and set its properties
finder = slreportgen.finder.ModelVariableFinder(model_name);
finder.LookUnderMasks = "all";

% Find variables used by the model
results = find(finder);

% Add the results to the chapter
add(chapter,results);

% Add chapter to the report
add(rpt,chapter);

% Close the report and open the viewer
close(rpt);
rptview(rpt);

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

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

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

% Load the model
model_name = "sf_car";
load_system(model_name);

% Find the variables in the model
finder = slreportgen.finder.ModelVariableFinder(model_name);

while hasNext(finder)
    result = next(finder);
    
    % Get the ModelVariable reporter for the result
    % Customize the formatting of numbers
    reporter = getReporter(result);
    reporter.NumericFormat = "%.4f";
    
    % Add the reporter to the chapter
    add(chapter,reporter);
end
% Add chapter to the report
add(rpt,chapter);

% Close the report and open the viewer
close(rpt);
rptview(rpt);

バージョン履歴

R2019b で導入

すべて展開する