このページの翻訳は最新ではありません。ここをクリックして、英語の最新版を参照してください。
モデル アドバイザーが確認する独自の条件およびモデル コンフィギュレーション設定を指定するには、カスタム チェックを作成します。次の図は、カスタム チェックを作成して定義するワークフローの概要を示しています。以降のセクションで、ワークフローの各ステップの詳細について説明します。
カスタム チェックを定義するには、まず、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
クラスの Visible
、Enable
、Value
の各プロパティを使用して指定できます。
次のチャートは、Visible
、Enable
および Value
の各プロパティ間の相互作用を示しています。
モデル アドバイザーにチェックをタスクとして追加する場合は、これらのプロパティを ModelAdvisor.Task
クラスで指定します。ModelAdvisor.Check
クラスと ModelAdvisor.Task
クラスの両方でプロパティを指定した場合、ModelAdvisor.Task
のプロパティが優先されます (Visible
プロパティと LicenseName
プロパティを除きます)。
ModelAdvisor.Action
| ModelAdvisor.Check
| ModelAdvisor.FactoryGroup
| ModelAdvisor.Group
| ModelAdvisor.InputParameter
| publish