メインコンテンツ

slreportgen.finder.FunctionReferenceFinder クラス

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

Simulink ブロック内の MATLAB 関数参照の検索

R2022a 以降

説明

クラス slreportgen.finder.FunctionReferenceFinder のオブジェクトを使用して、特に Simulink® ブロック内のパラメーターの計算に使用される関数参照を検索します。

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

クラス属性

HandleCompatible
true

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

作成

説明

funcRefFinder = slreportgen.finder.FunctionReferenceFinder(container) は、FunctionReferenceFinder オブジェクトを作成し、Container プロパティを container に設定します。

theReporter = slreportgen.finder.FunctionReferenceFinder(PropertyName=Value) は、1 つ以上の名前と値の引数を使用してプロパティを設定します。

プロパティ

すべて展開する

関数参照を検索する Simulink モデルまたはブロック。次の値のいずれかとして指定します。

説明
モデル名モデルの名前。文字ベクトルまたは string スカラーとして指定します。例: "sf_car"
ブロックへのパスブロックへのパス。文字ベクトルまたは string スカラーとして指定します。例: "sf_car/Engine"
モデル ハンドルモデル ハンドル。関数 slreportgen.utils.getModelHandle によって生成されます。例: slreportgen.utils.getModelHandle("sf_car")
ブロック ハンドルブロック ハンドル。関数 getSimulinkBlockHandle によって生成されます。例: getSimulinkBlockHandle("sf_car/Engine")
slreportgen.finder.DiagramResult オブジェクトSimulink モデルまたはサブシステムを表す検索結果オブジェクト
slreportgen.finder.BlockResult オブジェクトSimulink ブロックを表す検索結果オブジェクト

属性:

GetAccess
public
SetAccess
public

Container を検索するレベルの数。次のいずれかの値として指定します。

説明
1

ブロック線図の最上位から参照できるオブジェクトのみを検索します。検索には、入れ子形式のステート内にあるオブジェクトが含まれますが、サブシステム内のオブジェクトは除外されます。

非負の整数

指定された数のレベルを検索します。

Inf

すべてのレベルを検索します。

属性:

GetAccess
public
SetAccess
public

データ型: double

コンテナー内を検索するレベルの数。非負の整数または Inf (検索する深さを無制限にする場合) として指定します。

属性:

GetAccess
public
SetAccess
public

データ型: double

検索する関数のタイプ。次の値のいずれかとして指定します。

説明
"all"すべての関数参照の検索
"built-in"組み込み関数参照の検索
"user-defined"ユーザー定義関数参照の検索

属性:

GetAccess
public
SetAccess
public

データ型: string | char

参照モデル内を検索するかどうか。"on" または "off" として指定するか、数値または logical 1 (true) または 0 (false) として指定します。"on" の値は true と等価であり、"off" の値は false と等価です。したがって、このプロパティの値を logical 値として使用できます。値は、matlab.lang.OnOffSwitchState 型の on/off の logical 値として保存されます。指定に関する詳細は次の通りです。

  • "on" — Container プロパティによって表されるモデルまたはブロックが参照するモデル内を検索します。

    • ファインダーは、検索の深さ内にある参照モデルのみを検索します。

    • ファインダーは、参照モデルを含むブロックの深さに関係なく、SearchDepth で指定された深さまで参照モデルを検索します。

    • ファインダーは、参照モデルが参照するモデルを検索します。

  • "off" — 参照モデル内を検索しません。

属性:

GetAccess
public
SetAccess
public

データ型: logical

マスク サブシステム内を検索するかどうか。logical 1 (true) または 0 (false) として指定します。指定に関する詳細は次の通りです。

  • 1 (true) — マスク サブシステム内で変数を検索します。

  • 0 (false) — マスク サブシステム内で変数を検索しません。

属性:

GetAccess
public
SetAccess
public

データ型: logical

ライブラリ リンクをたどるかどうか。logical 1 (true) または 0 (false) として指定します。指定に関する詳細は次の通りです。

  • 1 (true) — ライブラリ ブロックまでリンクをたどります。ライブラリ リンクがサブシステムとして扱われます。

  • 0 (false) — ライブラリ ブロックまでリンクをたどりません。ライブラリ リンクがブロックとして扱われます。

属性:

GetAccess
public
SetAccess
public

データ型: logical

バリアント サブシステムおよびモデル バリアント内の非アクティブなバリアントが参照する関数を検索するかどうか。logical 1 (true) または 0 (false) として指定します。指定に関する詳細は次の通りです。

  • 1 (true) — バリアント サブシステムおよびモデル バリアント内の非アクティブなバリアントが参照する関数を検索します。

  • 0 (false) — バリアント サブシステムおよびモデル バリアント内の非アクティブなバリアントが参照する関数を検索しません。

属性:

GetAccess
public
SetAccess
public

データ型: logical

検索対象とする関数のプロパティ。{"Name","Value"} の形式で、名前と値の引数の cell 配列として指定します。ファインダーは、指定のプロパティが指定の値をもつ関数のみを返します。サポートされるプロパティには、slreportgen.finder.FunctionReferenceResult クラスのプロパティが含まれます。

属性:

GetAccess
public
SetAccess
public

データ型: cell

メソッド

すべて展開する

すべて折りたたむ

この例では、Simulink ブロック内の MATLAB 関数参照を検索してレポートする方法を説明します。

長い完全修飾クラス名を使用せずに済むよう、次の名前空間をインポートします。

import slreportgen.report.*
import slreportgen.finder.*

PDF タイプの slreportgen.report.Report を作成します。

theReport = Report("FunctionReferenceReport","pdf");

モデル sldemo_fuelsys を開き、ファインダーが最新バージョンのモデルを検索するようにモデルをコンパイルします。

modelName = "sldemo_fuelsys";
open_system(modelName);
slreportgen.utils.compileModel(modelName);

slreportgen.finder.FunctionReferenceFinder オブジェクトを作成します。

funcRefFinder = FunctionReferenceFinder(modelName);

参照モデル内を検索するようにファインダーを設定します。

funcRefFinder.SearchReferencedModels = true;

メソッド hasNext および next を使用し、slreportgen.finder.FunctionReferenceResult オブジェクトを一度に 1 つずつ取得します。

while(hasNext(funcRefFinder))
  nextRes = next(funcRefFinder);

参照関数が組み込み関数の場合は、結果をレポートに直接追加します。

  if(nextRes.FunctionType == "built-in")
    append(theReport,nextRes);

参照されている関数がユーザー定義関数の場合は、この結果の slreportgen.report.FunctionReference レポーターのハンドルを取得します。レポーターの ShowReferencesTable プロパティを false に設定することで、参照テーブルを除外するようにレポーターをカスタマイズします。次に、レポーターをレポートに追加します。

  else
    reporter = getReporter(nextRes);
    reporter.ShowReferencesTable = false;
    append(theReport,reporter);
  end
end

モデルのコンパイルを解除して閉じます。

slreportgen.utils.uncompileModel(modelName)
close_system(modelName);

レポートを閉じて表示します。

close(theReport);
rptview(theReport);

バージョン履歴

R2022a で導入