このページの翻訳は最新ではありません。ここをクリックして,英語の最新版を参照してください。
集計されたモデルメトリクスデータを解析することにより,モデルおよびそのコンポーネントのサイズ,複雑度,可読性をよりよく理解できます。集計されたメトリクスデータは,slmetric.metric.Result
オブジェクトのAggregatedValue
プロパティと聚合措施
プロパティにあります。AggregatedValue
プロパティはメトリクスのスカラー値を集計します。聚合措施
プロパティはメトリクス測定内容(つまり,メトリクス値に関する詳細情報)を集計します。
モデルメトリクスの実装によって,メトリクスがコンポーネント階層全体でデータを集計する方法が定義されます。MathWorksのモデルメトリクスでは,slmetric.metric.Metric
クラスがモデルメトリクスの集計を定義します。このクラスにはAggregationMode
プロパティが含まれ,このプロパティには次のオプションがあります。
总和
:コンポーネント階層全体での,价值
プロパティとその子コンポーネントの价值
プロパティの合計を返します。コンポーネント階層全体での,Meaures
プロパティとその子コンポーネントの措施
プロパティの合計を返します。
马克斯
:コンポーネント階層全体での,价值
プロパティとその子コンポーネントの价值
プロパティの最大値を返します。コンポーネント階層全体での,措施
プロパティとその子コンポーネントの措施
プロパティの最大値を返します。
没有一个
:メトリクス値の集計はありません。
MathWorksのモデルメトリクスとそのAggregationMode
プロパティの設定についての説明は,模型指标に記載されています。カスタムメトリクスの場合は,算法
详细によるデータのて,メトリクスによるデータます。非非バーチャルブロックををカウントするカスタムモデルメトリクス作作作作者を参照してください。
次の図に,モデルの階層構造にある複数のコンポーネントにわたってソフトウェアがメトリクスデータを集計する方法を示します。親モデルが階層の最上位にあります。コンポーネントは以下の可能性があります。
モデル
子系统ブロック
チャート
MATLAB函数ブロック
保護モデル
この例では,メトリクスエンジンでプログラムによってメトリクスデータを収集し,集計されたメトリクスデータにアクセスする方法を説明します。
sldemo_applyvarstruct.
モデルを読み込みます。
模型=“sldemo_applyVarStruct”;开放(模型);load_system(模型);
slmetric。引擎
オブジェクトを作成し,解析ルートを設定します。
metric_engine = slmetric.engine();setAnalistroot(metric_engine,'根',型号,'roottype','model');
モデルの入出力メトリクスデータを収集します。
执行(metric_engine,'mathworks.metrics.iocount');
モデルモデルメトリクスデータをを取得し,slmetric.metric.ResultCollection
オブジェクトの配列res_col
を返します。入力引数AggregationDepth
を指定します。
res_col = getMetrics (metric_engine,“mathworks.metrics.IOCount”,…‘AggregationDepth’,‘所有’);
入力引数AggregationDepth
には,所有
と没有一个
の2つのオプションがあります。getMetrics
メソッドメソッドで测定内容内容および値集计集计しないない场は,没有一个
を指定します。
结果を表示します。
metricData ={‘MetricID’,‘ComponentPath’,‘价值’,……“AggregatedValue”、“措施”、“AggregatedMeasures '};问= 1;For n=1:length(res_col) if res_col(n)。Status == 0 results = res_col(n).Results;for m=1:length(results) disp(['MetricID: ',results(m).MetricID]);disp([‘ComponentPath:’,结果(m) .ComponentPath]);disp([值:,num2str(结果(m) Value)]);disp([' aggregatevalue: ',num2str(results(m). aggregatevalue))]);disp([措施:,num2str(结果(m)各行业)]); disp([' Aggregated Measures: ',... num2str(results(m).AggregatedMeasures)]); metricData{cnt+1,1} = results(m).MetricID; metricData{cnt+1,2} = results(m).ComponentPath; metricData{cnt+1,3} = results(m).Value; tdmetricData{cnt+1,4} = results(m).Measures; metricData{cnt+1,5} = results(m).AggregatedMeasures; cnt = cnt + 1; end else disp(['No results for:',res_col(n).MetricID]); end disp(' '); end
結果は次のようになります。
MetricID: mathworks.metrics.IOCount ComponentPath: sldemo_applyVarStruct值:3聚合值:5措施:1 2 0 0聚合措施:3 2 0 0 MetricID: mathworks.metrics.IOCount ComponentPath: sldemo_applyVarStruct /控制器值:4聚合值:4措施:3 1 0 0聚合措施:3 1 0 0 MetricID:mathworks.metrics.IOCount ComponentPath: sldemo_applyVarStruct /飞机动力学模型值:5聚合值:5措施:3 2 0 0聚合措施:3 2 0 0 MetricID: mathworks.metrics.IOCount ComponentPath: sldemo_applyVarStruct /德莱顿风速模型值:2聚合值:2措施:0 2 0 0聚合措施:0 2 0 0 MetricID:mathworks.metrics.IOCount ComponentPath: sldemo_applyVarStruct /新西兰估算值:3聚合值:3措施:2 1 0 0聚合措施:2 1 0 0 MetricID: mathworks.metrics.IOCount ComponentPath: sldemo_applyVarStruct /更多Info2值:0聚合值:0措施:0 0 0 0聚合措施:0 0 0 0
入出力メトリクスの場合,AggregationMode
は马克斯
です。各コンポーネントのAggregatedValue
プロパティと聚合措施
プロパティ,コンポーネント自体およびその。たとえば,sldemo_applyvarstruct.
のAggregatedValue
プロパティは5
であり,これはSLDEMO_APPLYVARSTURE /飞机动力学模型
コンポーネントの値です。
slmetric。引擎
|slmetric.metric.Metric
|slmetric.metric.Result
|slmetric.metric.ResultCollection