slreportgen.report.ModelVariable クラス
名前空間: slreportgen.report
スーパークラス: slreportgen.report.Reporter
モデル変数レポーター
説明
作成
説明
slreportgen.report.ModelVariable オブジェクトは、明示的に作成しません。検出されたモデル変数の slreportgen.report.ModelVariable オブジェクトを取得するには次のようにします。
slreportgen.finder.ModelVariableFinderオブジェクトのfindメソッドまたはnextメソッドを使用して、検出された変数のslreportgen.finder.ModelVariableResultオブジェクトを取得します。slreportgen.finder.ModelVariableResultオブジェクトのgetReporterメソッドを呼び出して、slreportgen.report.ModelVariableオブジェクトを取得します。
slreportgen.report.ModelVariable オブジェクトのプロパティを設定することで、モデル変数のレポートをカスタマイズできます。
プロパティ
レポート対象の変数に対応する Simulink.VariableUsage オブジェクト。このオブジェクトには、変数の名前、変数のソース、および変数を使用するブロックが格納されます。このプロパティは読み取り専用です。
変数値を設定する Model ブロックのパス。文字ベクトルとして指定します。
参照モデルがモデル引数を使用してブロック パラメーター値を設定するとします。モデルに参照モデルの複数のインスタンスがある場合、モデル変数ファインダーは、モデル引数に関連付けられている変数の複数のインスタンスを返します。ModelBlockPath プロパティは、その値を設定する Model ブロックへのパスを提供することにより、変数のインスタンスを一意に特定します。変数が参照モデル内のモデル引数に関連付けられていない場合、ModelBockPath は空です。参照モデルとインスタンス固有のパラメーターの詳細については、参照モデルのブロック パラメーターに対するインスタンス固有の値の構成を参照してください。
この変数を使用するブロックのリストを含めるかどうか。true または false として指定します。FormatPolicy プロパティの値が "Inline Text" の場合、ShowUsedBy プロパティの値に関係なく、レポートにブロックのリストは含まれません。
[次で使用] のリストにあるブロックについてレポートされた内容がレポートに含まれている場合、ブロックのハイパーリンクをクリックするとその内容に移動します。モデル変数、ブロック線図、およびブロックについてのレポートの生成を参照してください。
変数が解決されるワークスペースを含めるかどうか。true または false として指定します。FormatPolicy プロパティの値が "Inline Text" の場合、ShowWorkspaceInfo プロパティの値に関係なく、レポートにワークスペースは含まれません。
変数を使用するブロックのリストの形式を設定するリスト フォーマッタ。mlreportgen.dom.UnorderedList オブジェクトまたは mlreportgen.dom.OrderedList オブジェクトとして指定します。このプロパティの既定値は、mlreportgen.dom.UnorderedList のオブジェクトです。リストの形式をカスタマイズするには、リスト オブジェクトのプロパティを変更するか、そのリスト オブジェクトをリスト項目を含まないカスタマイズしたリスト オブジェクトに置き換えます。
変数値の形式。次のいずれかの string または文字ベクトルとして指定します。
"Auto"— 変数値を値のデータ型に応じてテーブルまたは段落のいずれかの形式で示します。テーブルの形式になるデータ型には以下が含まれます。
cell 配列
logical 配列
数値配列
MATLAB® table
Simulink オブジェクト
Stateflow® オブジェクト
グラフィックス オブジェクト
MATLAB 構造体または構造体配列
MATLAB オブジェクトまたはオブジェクト配列
段落の形式になるデータ型には以下が含まれます。
cell ベクトル
logical スカラーまたはベクトル
数値スカラーまたはベクトル
文字または文字配列
string
MATLAB 構造体ベクトル
MATLAB オブジェクト ベクトル
"Table"— 変数値をテーブルの形式で示します。既定では段落として表示される変数が、代わりにテーブル エントリの形式で示されます。階層構造のオブジェクトである MATLAB 構造体、MATLAB オブジェクト、Simulink オブジェクト、Stateflow オブジェクト、グラフィックス オブジェクトなどの変数は、それ自体がオブジェクトであるプロパティをもつことがあります。その場合、階層がフラット化され、プロパティ値がそのオブジェクトのプロパティのテーブルへのハイパーリンクとして表示されます。オブジェクト プロパティ テーブルにも元のテーブルに戻るハイパーリンクがあります。"Paragraph"— 変数値を段落の形式で示します。既定ではテーブルの形式で示される変数がフラット化され、段落の形式で示されます。"Inline Text"— 変数を周囲のテキストと共にインラインの形式で示します。
属性:
GetAccess | public |
SetAccess | public |
データ型: char | string
変数の値の形式を設定するために使用されるテーブル レポーター。mlreportgen.report.BaseTable オブジェクトとして指定します。このプロパティの既定値は、TableStyleName プロパティが ModelVariableTable スタイルに設定された BaseTable オブジェクトであり、これは ModelVariable レポーターの既定のテンプレートに定義されています。
テーブルの外観をカスタマイズするには、既定のテーブル レポーターのプロパティを変更するか、そのテーブル レポーターをカスタマイズしたテーブル レポーターに置き換えます。既定またはカスタマイズしたテーブル レポーターの Title プロパティに内容を追加すると、生成されたレポートでテーブルのタイトルの前にその内容が表示されます。
モデル変数の値の形式を設定するための段落フォーマッタ。mlreportgen.dom.Paragraph オブジェクトとして指定します。このプロパティの既定値は、TableStyleName プロパティが ModelVariableParagraph スタイルに設定された BaseTable オブジェクトであり、これは ModelVariable レポーターの既定のテンプレートに定義されています。
段落の外観をカスタマイズするには、mlreportgen.dom.Paragraph オブジェクトのプロパティを変更するか、そのオブジェクトをカスタマイズした mlreportgen.dom.Paragraph オブジェクトに置き換えます。既定または置き換える段落オブジェクトに内容を追加すると、生成されたレポートで変数の内容の前にその内容が表示されます。
周囲のテキストと共にインラインのテキストとして示す場合のモデル変数の名前と値の形式を設定するためのテキスト フォーマッタ。mlreportgen.dom.Text オブジェクトとして指定します。テキストの外観をカスタマイズするには、既定の mlreportgen.dom.Text オブジェクトのプロパティを変更するか、そのオブジェクトをカスタマイズした mlreportgen.dom.Text オブジェクトに置き換えます。既定または置き換えるテキスト オブジェクトに内容を追加すると、生成されたレポートで変数の内容の前にその内容が表示されます。
表示するテーブル列の最大数。正の整数として指定します。テーブルを使用した配列変数のレポートで、列の数が MaxCols プロパティの値よりも多い場合、テーブルは縦方向にスライス化されます。スライス化により、テーブルが複数のテーブルに分割されます。
属性:
GetAccess | public |
SetAccess | public |
データ型: int32
構造化されたオブジェクトまたは構造化されたオブジェクトの配列である変数でレポート対象とするレベルの最大数。非負の整数として指定します。DepthLimit の値以下のレベルは、一連の連結されたテーブルにフラット化されます (FormatPolicy プロパティを参照)。深さの制限を超えるレベルはレポートされません。DepthLimit プロパティを 0 に設定すると、構造化されたオブジェクトが展開されません。
属性:
GetAccess | public |
SetAccess | public |
データ型: int32
オブジェクト階層でレポート対象とするオブジェクトの最大数。正の整数として指定します。
属性:
GetAccess | public |
SetAccess | public |
データ型: int32
タイトルを含めるかどうか。true または false として指定します。タイトルには変数の名前とオプションでデータ型が含まれます。IncludeTitle が true の場合、タイトルが含まれます。既定では、タイトルには変数の名前のみが含まれます。変数のデータ型を含めるには、ShowDataType プロパティを true に設定します。
属性:
GetAccess | public |
SetAccess | public |
データ型: logical
レポート対象の変数のタイトル。文字ベクトル、string スカラー、mlreportgen.dom.Text オブジェクト、mlreportgen.dom.InternalLink オブジェクト、または mlreportgen.dom.ExternalLink オブジェクトとして指定します。
FormatPolicy プロパティが "Inline Text" に設定されている場合、Title プロパティの設定に応じて次のようになります。
DOM オブジェクトの場合、DOM オブジェクトで指定された形式は無視されます。
mlreportgen.dom.InternalLinkまたはmlreportgen.dom.ExternalLinkオブジェクトの場合、タイトルにリンク テキストが使用されますが、タイトルがリンクにはなりません。
どちらの場合も、タイトルの形式を設定するには、この ModelVariable レポーターの TextFormatter プロパティを使用します。
Title プロパティを指定しない場合、変数名がタイトルになります。
変数のデータ型をタイトルに表示するかどうか。true または false として指定します。
属性:
GetAccess | public |
SetAccess | public |
データ型: logical
空の値をもつプロパティを表示するかどうか。true または false として指定します。ShowEmptyValues プロパティは、MATLAB オブジェクト、Simulink オブジェクト、および Stateflow オブジェクトの変数にのみ適用されます。
属性:
GetAccess | public |
SetAccess | public |
データ型: logical
既定値を使用するプロパティを表示するかどうか。true または false として指定します。ShowDefaultValues プロパティは、MATLAB オブジェクト、Simulink オブジェクト、および Stateflow オブジェクトの変数にのみ適用されます。
属性:
GetAccess | public |
SetAccess | public |
データ型: logical
レポート対象のモデル変数のプロパティをレポートからフィルターを適用するための関数または式。関数は関数ハンドルとして指定します。式は文字ベクトルまたは string スカラーとして指定します。このプロパティは、オブジェクトを格納する変数にのみ適用されます。PropertyFilterFcn を指定しない場合、モデル変数のすべてのプロパティがレポートに含まれます。
関数ハンドルを指定する場合、関連付けられた関数は次を行う必要があります。
次の引数を受け入れる。
variableName— レポート対象の変数の名前variableObject— レポート対象の変数propertyName— レポート対象の変数のプロパティの名前
レポートから指定されたプロパティにフィルターを適用するには
trueを返し、プロパティをレポートに含めるにはfalseを返す。
たとえば、次のコードは、Simulink.Parameter オブジェクトの Description プロパティと Complexity プロパティを表示しないようにします。
import slreportgen.finder.* import slreportgen.report.* rpt = slreportgen.report.Report('modelvarrpt','pdf'); model_name = load_system('sldemo_mdlref_datamngt'); finder = slreportgen.finder.ModelVariableFinder(model_name); while hasNext(finder) result = next(finder); varRptr = getReporter(result); varRptr.PropertyFilterFcn = @varPropertyFilter; add(rpt,varRptr); end close(rpt); close_system(model_name); rptview(rpt); function tf = varPropertyFilter(~, variableObject,propertyName) if isa(variableObject, 'Simulink.Parameter') tf = (propertyName == "Description") || ... (propertyName == "Complexity"); else tf = false; end end
string スカラーまたは文字ベクトルを指定する場合、式が含まれていなければなりません。その式は次のとおりです。
変数
variableName、variableObject、およびpropertyNameを使用できるレポートから指定されたプロパティにフィルターを適用するには変数
isFilteredをtrueに設定し、レポートにプロパティを含めるにはfalseに設定する必要がある
たとえば、次のコードは、Simulink.Parameter オブジェクトの CoderInfo プロパティをレポートからフィルターを適用します。
import slreportgen.finder.* import slreportgen.report.* rpt = slreportgen.report.Report('modelvarrpt','pdf'); model_name = load_system('sldemo_mdlref_datamngt'); finder = slreportgen.finder.ModelVariableFinder(model_name); while hasNext(finder) result = next(finder); varRptr = getReporter(result); varRptr.PropertyFilterFcn = "isFiltered = " + ... "isa(variableObject, 'Simulink.Parameter') && " + ... "propertyName == 'CoderInfo';"; add(rpt,varRptr); end close(rpt); close_system(model_name); rptview(rpt);
整数以外の数値の表示に使用する形式または精度。
形式は string スカラーまたは文字ベクトルとして指定します。sprintf のリファレンス ページで引数 formatSpec を参照してください。
精度は正の整数として指定します。num2str のリファレンス ページで引数 precision を参照してください。
例: "%.2f" は、double 値を小数点以下 2 桁まで表示します。
例: 2 は、最大有効桁数 2 桁まで表示します。
このレポーターのテンプレートのソース。以下のいずれかの方法で指定します。
このレポーターのテンプレートを含むファイルのパスを指定する、文字ベクトルまたは string スカラー
このレポーターが使用するテンプレートをもつか、このレポーター用のテンプレートを含むテンプレート ライブラリをもつ、レポーターまたはレポート
このレポーターが使用するテンプレートをもつか、このレポーター用のテンプレートを含むテンプレート ライブラリをもつ、ドキュメント オブジェクト モデル (DOM) のドキュメントまたはドキュメント パーツ
指定されるテンプレートは、このレポートが追加されるレポーターと同じタイプでなければなりません。たとえば、Microsoft® Word レポートの場合、TemplateSrc は Word レポーター テンプレートでなければなりません。TemplateSrc プロパティが空の場合、このレポーターはレポートの出力タイプで既定のレポーター テンプレートを使用します。
属性:
GetAccess | public |
SetAccess | public |
NonCopyable | true |
このレポーター テンプレートの名前。文字ベクトルまたは string スカラーとして指定します。このレポーター テンプレートは、このレポーターの TemplateSrc プロパティで指定されたテンプレートのテンプレート ライブラリになければなりません。
属性:
GetAccess | public |
SetAccess | public |
データ型: char | string
このレポーターのハイパーリンク ターゲット。リンク ターゲット ID を指定する文字ベクトルまたは string スカラー、あるいは mlreportgen.dom.LinkTarget オブジェクトとして指定します。文字ベクトルまたは string スカラーの値は LinkTarget オブジェクトに変換されます。リンク ターゲットは、出力レポートでこのレポーターのコンテンツの直前に配置されます。
属性:
GetAccess | public |
SetAccess | public |
メソッド
getVariableName | モデル変数レポーターから変数の名前を取得する |
getVariableValue | モデル変数レポーターから変数の値を取得する |
slreportgen.report.ModelVariable.createTemplate | Create model variable reporter template |
slreportgen.report.ModelVariable.customizeReporter | Create custom model variable reporter class |
slreportgen.report.ModelVariable.getClassFolder | Get location of model variable reporter class definition file |
copy | Create copy of a Simulink reporter object and make deep copies of certain property values |
getImpl | レポーターの実装を取得する |
例
検索結果を反復処理し、結果ごとにモデル変数レポーターのプロパティを設定することで、レポートにおけるモデル変数の書式設定をカスタマイズします。
レポートを作成します。
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);
以下を含むレポートを生成します。
モデル変数についての章
モデルの各ブロック線図についてのブロック線図のブロックの節を含む章
モデル変数の [次で使用] のリストにあるブロック名は、それぞれのブロックについてレポートされた対応する内容へのハイパーリンクになります。
% Create a Report rpt = slreportgen.report.Report("MyReport","pdf"); % Load the model model_name = "sf_car"; load_system(model_name); % Create a Chapter for the Variables chapter = mlreportgen.report.Chapter(); chapter.Title = "Model Variable Report for the "+model_name+" model"; % Find the variables in the model finder = slreportgen.finder.ModelVariableFinder(model_name); % Report on the variables while hasNext(finder) result = next(finder); reporter = getReporter(result); add(chapter,reporter); end add(rpt,chapter); % Add diagrams to the report finder = slreportgen.finder.DiagramFinder(model_name); while hasNext(finder) result = next(finder); ch = mlreportgen.report.Chapter(result.Name); add(ch, result); % Add a section for the blocks in the diagram sect = mlreportgen.report.Section("Title","Blocks"); blFinder = slreportgen.finder.BlockFinder(result.Object); while hasNext(blFinder) blockresult = next(blFinder); add(sect,blockresult); end add(ch,sect); add(rpt, ch); end % Close and view the report close(rpt); rptview(rpt); close_system(model_name);
バージョン履歴
R2019b で導入
MATLAB Command
You clicked a link that corresponds to this MATLAB command:
Run the command by entering it in the MATLAB Command Window. Web browsers do not support MATLAB commands.
Web サイトの選択
Web サイトを選択すると、翻訳されたコンテンツにアクセスし、地域のイベントやサービスを確認できます。現在の位置情報に基づき、次のサイトの選択を推奨します:
また、以下のリストから Web サイトを選択することもできます。
最適なサイトパフォーマンスの取得方法
中国のサイト (中国語または英語) を選択することで、最適なサイトパフォーマンスが得られます。その他の国の MathWorks のサイトは、お客様の地域からのアクセスが最適化されていません。
南北アメリカ
- América Latina (Español)
- Canada (English)
- United States (English)
ヨーロッパ
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)