このページの翻訳は最新ではありません。ここをクリックして、英語の最新版を参照してください。
カスタム メトリクスをもつレイアウトを作成する
この例では、カスタム メトリクスを作成し、メトリクス ダッシュボードのレイアウトを変更して、モデルに関する情報、カスタム メトリクスからの結果、および他のカスタム ウィジェットのみを表示する方法について説明します。
カスタム メトリクスを作成する
新しいメトリクス クラスを作成し、そのメトリクス クラスの関数 algorithm
内でメトリクスが何を計算するかを指定することで、カスタム メトリクスを定義できます。
1.nonvirtualblockcount
という名前の新しいメトリクス クラスを作成します。
slmetric.metric.createNewMetricClass('nonvirtualblockcount');
関数 createNewMetricClass
は nonvirtualblockcount.m
という名前のクラスを現在の作業フォルダー内に作成します。
2.この例では、nonvirtualblockcount_orig.m
で定義されているサンプルのカスタム メトリクスの内容を、メトリクス クラス ファイル nonvirtualblockcount.m
にコピーします。
copyfile nonvirtualblockcount_orig.m nonvirtualblockcount.m f
クラス定義内の関数 algorithm
は、カスタム メトリクスが何を計算するかを定義します。この例のファイル nonvirtualblockcount_orig.m
には、現在のモデルで非バーチャル ブロックをカウントするメトリクスのアルゴリズムが含まれています。
3.カスタム メトリクスをモデル メトリクス リポジトリに登録します。メトリクス ダッシュボードで使用できるのはモデル メトリクス リポジトリから使用可能なメトリクスのみです。
[id_metric,err_msg] = slmetric.metric.registerMetric('nonvirtualblockcount');
カスタム メトリクスは、関数 slmetric.metric.unregisterMetric
を使用してそのメトリクスを登録解除するまで、モデル メトリクス リポジトリに存在し続けることに注意してください。
カスタム ウィジェットを使用してレイアウトを作成する
メトリクス ダッシュボード レイアウト
最低限、メトリクス ダッシュボードでは、レイアウトに 1 つの 'SystemInfo'
ウィジェットと、少なくとも 1 つの slmetric.dashboard.Widget
タイプまたは slmetric.dashboard.CustomWidget
タイプのウィジェットが含まれている必要があります。
'SystemInfo'
ウィジェットは、現在のシステムについての情報を表示するウィジェットです。これには、次の事項が含まれます。
現在のシステムの名前。
モデルの作成者。
現在のモデルのリビジョン。
メトリクス結果をいつ収集したか。
1.新しい構成オブジェクトを作成します。構成には、メトリクス ダッシュボードがウィジェットを配置するために使用するレイアウトが含まれています。この例では、新しい構成の Name
を "Minimal"
として指定します。構成オブジェクトの詳細については、slmetric.dashboard.Configuration
を参照してください。
dashboardconfig = slmetric.dashboard.Configuration.new(Name='Minimal')
dashboardconfig = Configuration with properties: Name: 'Minimal' FileName: '' Location: ''
2.構成からダッシュボード レイアウトを取得します。
layout = getDashboardLayout(dashboardconfig);
3.関数 addWidget
を使用して 'SystemInfo'
ウィジェットをレイアウトに追加します。
addWidget(layout,'SystemInfo')
ans = Widget with properties: Title: '' Type: 'SystemInfo' ID: '63a87dd2-4d78-46b9-928c-2317fc021425'
単一の値の表示
既定では、カスタム ウィジェットは、ウィジェットのタイトルの隣に単一の整数値を表示します。
1.widgetType
を 'Custom'
に指定して、カスタム ウィジェット customWidget
をレイアウトに追加します。
customWidget = addWidget(layout,'Custom');
既定では、カスタム ウィジェットは VisualizationType
'SingleValue'
を指定して、単一の整数値をダッシュボードに表示します。
2.カスタム メトリクス 'nonvirtualblockcount'
をカスタム ウィジェットに割り当てます。
customWidget.setMetricIDs('nonvirtualblockcount');
3.カスタム ウィジェットのタイトルを指定します。
customWidget.Title = 'Nonvirtual Block Count'
customWidget = CustomWidget with properties: VisualizationType: 'SingleValue' Labels: {0×1 cell} Title: 'Nonvirtual Block Count' Type: 'Custom' ID: 'd1d33f3f-6252-4979-8ea1-70c7c77dd81a'
メトリクス ダッシュボードで新しいレイアウトを使用する
1.更新された構成 dashboardconfig
を XML ファイルとして保存します。XML ファイルには、ダッシュボードの新しい、最小限のレイアウトが含まれています。
save(dashboardconfig,'Filename','DashboardConfig.xml');
2.XML ファイルをメトリクス ダッシュボードのアクティブな構成として設定します。
slmetric.dashboard.setActiveConfiguration(fullfile(pwd,'DashboardConfig.xml'));
3.モデル vdp
のメトリクス ダッシュボードを開きます。
metricsdashboard vdp
Warning: The Metrics Dashboard and slmetric.Engine API will be removed in a future release. For size, architecture, and complexity metrics, use the Model Maintainability Dashboard and metric.Engine API instead. The Model Maintainability Dashboard and metric.Engine API can identify outdated metric results, analyze dependencies between files, and aggregate metrics across software units and components. For more information, see <a href="matlab:helpview([docroot '/slcheck/collect-model-metric-data-1.html'])">Collect Model and Testing Metrics</a>
メトリクス ダッシュボードには 'SystemInfo'
ウィジェットとカスタム メトリクス 'nonvirtualblockcount'
のためのカスタム ウィジェットのみが表示されます。
ウィジェットがメトリクス結果を表示する方法を変更する
既定では、カスタム ウィジェットは VisualizationType
'SingleValue'
を使用します。
'SingleValue'
ウィジェットのメトリクスを実行すると、ウィジェットは単一の整数値のみをウィジェットの Title
の隣に表示します。
ただし、カスタム ウィジェットの可視化の種類を、棒グラフ、放射状ゲージ、または分布ヒートマップに変更できます。詳細については、slmetric.dashboard.CustomWidget
を参照してください。
棒グラフの表示
カスタム ウィジェットでメトリクス結果を棒グラフで表示させるには、次のようにします。
VisualizationType
を'BarChart'
として指定します。Labels
プロパティを使用して、棒グラフのそれぞれのバーにラベルを指定します。ラベルは cell 配列で指定する必要があり、ラベルの数がウィジェットに関連付けられているメトリクス ID の数と等しくなければなりません。関数
setHeight
を使用してウィジェットの高さを設定し、ウィジェットがレイアウトに表示されるようにします。
新しいカスタム ウィジェット barChartWidget
をレイアウトに追加します。
barChartWidget = addWidget(layout,'Custom'); barChartWidget.VisualizationType = 'BarChart'; barChartWidget.Title = 'Bar Chart'; barChartWidget.setMetricIDs({'nonvirtualblockcount','mathworks.metrics.SimulinkBlockCount'}) barChartWidget.Labels = {'Nonvirtual Block Count','Block Count'}; barChartWidget.setHeight(220);
この例では、カスタム ウィジェットは各メトリクス ID について 1 つのバーを表示します。棒グラフは、カスタム メトリクス 'nonvirtualblockcount'
のメトリクス ID と Simulink® Check™ メトリクス 'mathworks.metrics.SimulinkBlockCount'
のメトリクス ID を使用します。使用できるメトリクスの一覧を表示するには、関数 slmetric.metric.getAvailableMetrics
を使用します。詳細については、モデル メトリクスを参照してください。
放射状ゲージの表示
カスタム ウィジェットでメトリクス結果を放射状ゲージで表示させるには、次のようにします。
VisualizationType
を'RadialGauge'
として指定します。メトリクス結果を 0 と 1 の間の値で指定します。放射状ゲージでは、0 と 1 の間の値のみがサポートされます。
randomnumber
という名前の新しいメトリクス クラスを作成します。
slmetric.metric.createNewMetricClass('randomnumber');
この例では、randomnumber_orig.m
で定義されているサンプルのカスタム メトリクスの内容を、メトリクス クラス ファイル randomnumber.m
にコピーします。
copyfile randomnumber_orig.m randomnumber.m f
サンプルのカスタム メトリクスを登録します。カスタム メトリクスの定義内の関数 algorithm
は、0 と 1 の間の乱数であるメトリクス値 res.Value
を指定します。
slmetric.metric.registerMetric('randomnumber');
新しいカスタム ウィジェット gaugeWidget
をレイアウトに追加します。
gaugeWidget = addWidget(layout,'Custom'); gaugeWidget.VisualizationType = 'RadialGauge'; gaugeWidget.Title = 'Radial Gauge'; gaugeWidget.setMetricIDs('randomnumber');
分布ヒートマップの表示
カスタム ウィジェットでメトリクス結果を分布ヒートマップで表示させるには、次のようにします。
VisualizationType
を'DistributionHeatmap'
として指定します。メトリクス結果の値を正の整数値の配列として指定します。分布ヒートマップでは、正の整数値の配列のみがサポートされます。
新しいカスタム ウィジェット heatmapWidget
をレイアウトに追加します。
heatmapWidget = addWidget(layout,'Custom'); heatmapWidget.VisualizationType = 'DistributionHeatmap'; heatmapWidget.Title = 'Distribution Heat Map'; heatmapWidget.setMetricIDs('mathworks.metrics.SimulinkBlockCount');
たとえば、カスタム ウィジェットはメトリクス 'mathworks.metrics.SimulinkBlockCount'
のメトリクス結果を表示します。メトリクス 'mathworks.metrics.SimulinkBlockCount'
は、モデルとモデル サブシステムのブロックの数を返します。
更新されたレイアウトの保存とメトリクス ダッシュボードの表示
更新されたレイアウトを保存してメトリクス ダッシュボードを表示するには、次のように入力します。
save(dashboardconfig,'Filename','DashboardConfig.xml'); slmetric.dashboard.setActiveConfiguration(fullfile(pwd,'DashboardConfig.xml')); metricsdashboard vdp
Warning: The Metrics Dashboard and slmetric.Engine API will be removed in a future release. For size, architecture, and complexity metrics, use the Model Maintainability Dashboard and metric.Engine API instead. The Model Maintainability Dashboard and metric.Engine API can identify outdated metric results, analyze dependencies between files, and aggregate metrics across software units and components. For more information, see <a href="matlab:helpview([docroot '/slcheck/collect-model-metric-data-1.html'])">Collect Model and Testing Metrics</a>
カスタム メトリクスの登録解除
カスタム メトリクスは、関数 slmetric.metric.unregisterMetric
を使用してそのメトリクスを登録解除するまで、モデル メトリクス リポジトリに存在し続けることに注意してください。
slmetric.metric.unregisterMetric('nonvirtualblockcount'); slmetric.metric.unregisterMetric('randomnumber');
参考
setMetricIDs
| slmetric.dashboard.Configuration
| slmetric.dashboard.CustomWidget
| slmetric.dashboard.Widget
| slmetric.metric.unregisterMetric