Main Content

このページの翻訳は最新ではありません。ここをクリックして、英語の最新版を参照してください。

独自のカスタム モデル アドバイザー チェックの定義

モデル アドバイザーが確認する独自の条件およびモデル コンフィギュレーション設定を指定するには、カスタム チェックを作成します。次の図は、カスタム チェックを作成して定義するワークフローの概要を示しています。以降のセクションで、ワークフローの各ステップの詳細について説明します。

sl_customization ファイルおよび関数の作成

カスタム チェックを定義するには、まず、MATLAB パスに sl_customization.m ファイルを作成します。sl_customization.m ファイルの中に、関数 sl_customization を作成します。関数 sl_customization では、1 つの引数 (カスタマイズ マネージャー オブジェクト) を受け入れます。

function sl_customization(cm)

ヒント

  • MATLAB パス上に複数の sl_customization.m ファイルを配置することができます。

  • モデル アドバイザーのチェックとフォルダーをカスタマイズする sl_customization.m ファイルは、ルート MATLAB® フォルダーやそのサブフォルダー (matlabroot/work フォルダーを除く) には配置しないでください。配置した場合、モデル アドバイザーはファイルで指定されているカスタマイズを無視します。

カスタム チェックの登録

カスタム チェックを登録するには、addModelAdvisorCheckFcn メソッドを使用します。これは、関数 sl_customization に入力するカスタマイズ マネージャー オブジェクトの一部です。次のコードを sl_customization.m ファイルに追加します。

function sl_customization(cm)
% register custom checks
cm.addModelAdvisorCheckFcn(@checkDefinitionFcn)

addModelAdvisorCheckFcn メソッドは、checkDefinitionFcn で定義されたチェックを、モデル アドバイザーの [製品別] フォルダーに登録します。checkDefinitionFcn 引数は、ModelAdvisor.Check クラスのインスタンスとしてモデル アドバイザーに追加するカスタム チェックを定義する関数のハンドルです。

チェック定義関数の作成

チェック定義関数は、チェック実行時にモデル アドバイザーが行うアクションを定義します。作成するチェックごとに 1 つのチェック定義関数を定義する必要があります。以降のセクションでは、チェック定義関数の主要なコンポーネントを説明します。

ModelAdvisor.Check クラスのインスタンスの作成

各カスタム チェックごとに、ModelAdvisor.Check クラスのインスタンスを 1 つ作成します。ModelAdvisor.Check プロパティおよびメソッドを使用して、チェックのユーザー インターフェイスとアクションを定義します。次の表は、主要なチェック コンポーネントの一部を示しています。

内容説明
チェック ID (必須)チェックを一意に識別します。モデル アドバイザーはこの ID を使用してチェックにアクセスします。
チェック コールバック関数のハンドル (必須)チェックの内容を指定する関数です。
チェック名 (推奨)モデル アドバイザーで表示されるチェックの名前を作成します。
モデルのコンパイル (オプション)チェック解析用にモデルをコンパイルするかどうかを指定します。
入力パラメーター (オプション)ユーザーによる入力を要求する入力パラメーターを追加します。モデル アドバイザーはこの入力を使用してチェックを実行します。
アクション (オプション)修正アクションを追加します。

チェック アクションと修正の定義

チェック定義関数には、モデル アドバイザーにモデルまたはサブシステムに対して実行させるアクションを指定するチェック コールバック関数が含まれています。チェック コールバック関数を定義し、そのハンドルを setCallbackFcn メソッドに受け渡します。チェックを実行すると、モデル アドバイザーはコールバック関数を実行します。チェック実行後、コールバック関数は結果を表示する戻り引数を 1 つ以上提供します。

カスタム チェックの修正を指定する場合、チェック定義関数にはアクション コールバック関数も含める必要があります。チェック定義関数内で、ModelAdvisor.Action クラスのインスタンスを作成します。アクション コールバック関数を定義し、そのハンドルを setCallbackFcn メソッドに受け渡します。アクションを指定すると、モデル アドバイザーの [解析] ボックスの下に [アクション] ボックスが表示されます。[アクション] ボックスには、モデルまたはサブシステムを修正するためのボタンがあります。以下の例では、ボタンの名前は [設定の変更] です。

コールバック関数およびアクション コールバック関数から、チェックの実行後に結果を表示するための戻り引数が 1 つ以上返されます。チェック コールバック定義関数アクション コールバック定義関数の作成を参照してください。

チェック入力パラメーターの定義

入力パラメーターを使用して、チェックを実行する前に入力を要求できます。ModelAdvisor.InputParameter クラスを使用して入力パラメーターを定義します。カスタム チェック定義関数に入力パラメーターの定義を組み込まなければなりません。モデル アドバイザー チェックに追加する入力パラメーターごとにこのクラスのインスタンスを 1 つ定義しなければなりません。

次のメソッドを使用して、入力パラメーターのレイアウトを指定します。

メソッド説明
setInputParametersLayoutGrid入力パラメーター グリッドのサイズを指定します。
setRowSpan入力パラメーター レイアウト グリッド内のパラメーターの行数を指定します。
setColSpan入力パラメーター レイアウト グリッド内のパラメーターの列数を指定します。

入力パラメーターはモデル アドバイザーの [入力パラメーター] ボックスに表示されます。

カスタム チェックが表示される場所の指定

publish メソッドを使用して、[製品別] フォルダー内にカスタム チェック用のフォルダーを作成します。次に、モデル アドバイザーの設定エディターを使用して、モデル アドバイザー ツリー内のフォルダーをカスタマイズします。詳細については、モデル アドバイザーの設定エディターを使用したモデル アドバイザーのカスタマイズを参照してください。

モデル アドバイザーの設定エディターの代わりに、ModelAdvisor.Group クラスおよび ModelAdvisor.FactoryGroup クラスを使用してモデル アドバイザーをカスタマイズすることができます。ただし、これらの API は、柔軟性が劣り、時間がかかるモデル アドバイザー カスタマイズ方法です。カスタマイズされたチェックを、モデル アドバイザー ツリーの最上位 (モデル アドバイザーのルート) に配置するには、ModelAdvisor.Group クラスを使用します。カスタマイズされたチェックを [タスク別] フォルダーの新しいフォルダーに配置するには、ModelAdvisor.FactoryGroup クラスを使用します。これらのタスクおよびフォルダーを関数 sl_customization に登録するメソッドを含めなければなりません。

チェック結果の書式設定

モデル アドバイザーの結果に既定の書式設定を使用するには、setCallbackFcn メソッドでコールバック関数のタイプを DetailStyle に指定します。既定の書式設定では要件が満たされない場合、他のコールバック関数スタイルの 1 つと、ModelAdvisor.FormatTemplate クラスまたは以下の他のモデル アドバイザーの書式設定 API のいずれかを使用します。

クラス説明
ModelAdvisor.Text

モデル アドバイザーのテキスト出力を作成します。

ModelAdvisor.List

リストを作成します。

ModelAdvisor.Table

テーブルを作成します。

ModelAdvisor.Paragraph

段落を作成し、書式設定します。

ModelAdvisor.LineBreak

改行を挿入します。

ModelAdvisor.Image

モデル アドバイザーの出力に画像を含めます。

チェックの表示と有効化

カスタム チェックがモデル アドバイザーにどのように表示されるかを指定することができます。どの場合にチェックを表示するか、またユーザーによるチェックの選択や選択解除を許可するかどうかを、ModelAdvisor.Check クラスの VisibleEnableValue の各プロパティを使用して指定できます。

次のチャートは、VisibleEnable および Value の各プロパティ間の相互作用を示しています。

モデル アドバイザーにチェックをタスクとして追加する場合は、これらのプロパティを ModelAdvisor.Task クラスで指定します。ModelAdvisor.Check クラスと ModelAdvisor.Task クラスの両方でプロパティを指定した場合、ModelAdvisor.Task のプロパティが優先されます (Visible プロパティと LicenseName プロパティを除きます)。

参考

| | | | |

関連するトピック