Main Content

このページの内容は最新ではありません。最新版の英語を参照するには、ここをクリックします。

slreportgen.finder.DiagramFinder クラス

名前空間: slreportgen.finder

ブロック線図のファインダーを作成する

説明

Simulink® ブロック線図と Stateflow® チャートを検索します。

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

作成

説明

finder = DiagramFinder(container) は、指定された container 内のコメントのない Simulink ブロック線図と Stateflow チャート図をすべて既定で検索するファインダーを作成します。特定タイプのブロック線図を含めるように検索を制約するには、このファインダーのプロパティを使用します。

メモ

このファインダーは、検索モードまたは反復子モードのいずれかで動作可能です。検索モードでは、その find メソッドを使用して、検索結果を結果の配列として返します。反復子モードでは、その hasNext メソッドと next メソッドを使用して、検索結果を 1 つずつ返します。多数のモデル参照をもつモデルを検索する場合は、反復子モードを使用します。反復子モードではモデルのコンパイルと検索の後にモデルを閉じますが、検索モードでは検索したすべてのモデルを開いたままにします。開いたモデルが多数あると、すべてのシステム メモリが消費され、レポート生成が遅くなる可能性があります。反復子モードは検索モードより遅いため、他のモデルをほとんど、またはまったく参照しないモデルを検索するには検索モードを使用します。

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

入力引数

すべて展開する

Container プロパティを参照してください。

プロパティ

すべて展開する

検索の対象となるモデル コンテナー。次のいずれかの値として指定します。

  • Simulink モデル、サブシステム、またはモデル ブロックのハンドル

  • Simulink モデル、サブシステム、またはモデル ブロックへのパス

  • Stateflow Chart ブロックのハンドル

  • Stateflow Chart ブロックへのパス

  • Stateflow チャート ID

  • Stateflow チャート オブジェクト

システム ブロック線図の検索の深さ。inf または正の整数として指定します。SearchDepth は、ブロック線図コンテナーをブロック線図について検索するレベルの深さを指定します。すべてのレベルを検索するには、inf を使用します。

マスク サブシステムを検索するかどうかの選択。logical として指定します。このプロパティが true の場合、ファインダーはブロック線図コンテナー内のマスク Subsystem ブロックを検索します。指定された SearchDepth まで検索し、見つかったブロック線図を検索結果に含めます。

参照モデルを検索するかどうかの選択。logical として指定します。このプロパティが true の場合、ファインダーはブロック線図コンテナー内で参照されるモデルを検索します。指定された SearchDepth まで検索し、見つかったブロック線図を検索結果に含めます。

参照サブシステムを検索するかどうか。数値か logical 1 (true) または 0 (false) として指定します。結果は、参照サブシステム ブロックの個々の出現ではなく、ソース サブシステム ブロックを示します。そのため、複数回参照される単一のサブシステムの結果は 1 つのみとなります。

Simulink ライブラリ リンクを検索するかどうかの選択。logical として指定します。このプロパティと IncludeMaskedSubsystems がいずれも true の場合、ファインダーはブロック線図コンテナー内にある、Simulink ライブラリの Subsystem ブロックとマスク Subsystem ブロックの両方へのリンクを検索します。指定された SearchDepth まで検索し、見つかったブロック線図を検索結果に含めます。このプロパティが trueIncludeMaskedSubsystemsfalse の場合、ファインダーは Simulink ライブラリの Subsystem ブロックへのリンクのみを検索します。

ユーザー ライブラリ リンクを検索するかどうかの選択。logical として指定します。このプロパティが trueIncludeMaskedSubsystems プロパティが true の場合、ファインダーはブロック線図コンテナー内にある、ユーザー ライブラリの Subsystem ブロックとマスク Subsystem ブロックへのリンクを検索します。指定された SearchDepth まで検索し、見つかったブロック線図を検索結果に含めます。このプロパティが trueIncludeMaskedSubsystems プロパティが false の場合、ファインダーはユーザー ライブラリの Subsystem ブロックへのリンクのみを検索します。

コメントアウトされたブロック線図を検索結果に含めるかどうか。logical として指定します。false の場合、コメントアウトされたブロック線図は検索結果から除外されます。

ブロック線図を検索するためのバリアント。string または文字ベクトルとして指定します。既定値は Active です。有効な値は次のとおりです。

  • All — すべてのバリアント

  • Active — アクティブなバリアントのみ

  • ActivePlusCode — すべてのアクティブなバリアントとコード バリアント

ファインダーの結果を並べ替えます。次のいずれかの値として指定します。

説明
"none"結果を並べ替えません。
"alphabetical"結果を名前のアルファベット順に並べ替えます。
"numBlocks"結果をシステム内のブロック数順に並べ替えます。並べ替えられたリストの最初のブロックには、最大数のブロックが含まれます。
"depth"結果をモデルの階層構造の深さ順に並べ替えます。並べ替えられたリストの最初のシステムは、階層内で最上位のシステムです。たとえば、モデルとそのサブシステムは、 myModelmyModel/subsystem1myModel/subsystem1/nestedSubststem の順に並べ替えられます。

検索対象とするオブジェクトのプロパティ。名前と値のペアの cell 配列として指定します。ファインダーは、指定のプロパティが指定の値をもつオブジェクトのみを返します。

例: finder.Properties = {'Gain','5'}

モデルを閉じるかどうか。true または false として指定します。true の場合、ファインダーの next メソッドは、検索対象の次のモデルに移動する前に現在開いているモデルを閉じます。モデルを閉じることで、多数のモデルを参照するモデルを検索する際にメモリが過剰に消費されるのを防止します。

メモ

ファインダーの find メソッドはこのプロパティを無視し、すべての参照モデルを開いたままにします。このため、多数のモデル参照があるモデルの検索では find メソッドを使用すべきではありません。

メソッド

すべて展開する

すべて折りたたむ

sf_car モデル内のすべてのブロック線図のイメージを含むレポートを作成します。この例で使用するモデルにはモデル参照はありませんが、反復子モードを使用して構文を説明しています。

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

model_name = "sf_car";
load_system(model_name);
rpt = slreportgen.report.Report("output","pdf");
add(rpt, TitlePage(Title=model_name+" Systems"));

finder = DiagramFinder(model_name); 
while hasNext(finder)
    add(rpt,next(finder));
end    

close(rpt);
close_system(model_name);
rptview(rpt);

sf_car モデルを開き、その Engine サブシステム内のすべてのブロック線図を検索します。サブシステムへのパスか、またはそのハンドルを使用します。その後、結果をレポートに含めることができます。

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

model_name = "sf_car";
load_system(model_name);

% Use path 
enginePath = "sf_car/Engine";
finder = slreportgen.finder.DiagramFinder(enginePath);
results = find(finder);

% or use handle
engineHandle = get_param("sf_car/Engine","Handle");
finder = slreportgen.finder.DiagramFinder(engineHandle);
results_enginehandle = find(finder);

特定のプロパティ値をもつ要素を検索するには、slreportgen.finder.DiagramElementFinder クラスのオブジェクトを使用します。f14 モデルを開き、値 Zw をもつ Gain ブロックをすべて検索します。

model = 'f14';
openExample(model);
finder = slreportgen.finder.DiagramElementFinder(model)
finder.Properties = {'Gain','Zw'};
results = find(finder);

バージョン履歴

R2017b で導入