主要内容

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

モデルメトリクスデータの集計

集計されたモデルメトリクスデータを解析することにより,モデルおよびそのコンポーネントのサイズ,複雑度,可読性をよりよく理解できます。集計されたメトリクスデータは,slmetric.metric.ResultオブジェクトのAggregatedValueプロパティと聚合措施プロパティにあります。AggregatedValueプロパティはメトリクスのスカラー値を集計します。聚合措施プロパティはメトリクス測定内容(つまり,メトリクス値に関する詳細情報)を集計します。

モデルメトリクスの集計方法

モデルメトリクスの実装によって,メトリクスがコンポーネント階層全体でデータを集計する方法が定義されます。MathWorksのモデルメトリクスでは,slmetric.metric.Metricクラスがモデルメトリクスの集計を定義します。このクラスにはAggregationModeプロパティが含まれ,このプロパティには次のオプションがあります。

  • 总和:コンポーネント階層全体での,价值プロパティとその子コンポーネントの价值プロパティの合計を返します。コンポーネント階層全体での,Meauresプロパティとその子コンポーネントの措施プロパティの合計を返します。

  • 马克斯:コンポーネント階層全体での,价值プロパティとその子コンポーネントの价值プロパティの最大値を返します。コンポーネント階層全体での,措施プロパティとその子コンポーネントの措施プロパティの最大値を返します。

  • 没有一个:メトリクス値の集計はありません。

MathWorksのモデルメトリクスとそのAggregationModeプロパティの設定についての説明は,模型指标に記載されています。カスタムメトリクスの場合は,算法详细によるデータのて,メトリクスによるデータます。非非バーチャルブロックををカウントするカスタムモデルメトリクス作作作作者を参照してください。

次の図に,モデルの階層構造にある複数のコンポーネントにわたってソフトウェアがメトリクスデータを集計する方法を示します。親モデルが階層の最上位にあります。コンポーネントは以下の可能性があります。

  • モデル

  • 子系统ブロック

  • チャート

  • MATLAB函数ブロック

  • 保護モデル

集計されたメトリクスデータへのアクセス

この例では,メトリクスエンジンでプログラムによってメトリクスデータを収集し,集計されたメトリクスデータにアクセスする方法を説明します。

  1. sldemo_applyvarstruct.モデルを読み込みます。

    模型=“sldemo_applyVarStruct”;开放(模型);load_system(模型);
  2. slmetric。引擎オブジェクトを作成し,解析ルートを設定します。

    metric_engine = slmetric.engine();setAnalistroot(metric_engine,'根',型号,'roottype','model');

  3. モデルの入出力メトリクスデータを収集します。

    执行(metric_engine,'mathworks.metrics.iocount');
  4. モデルモデルメトリクスデータをを取得し,slmetric.metric.ResultCollectionオブジェクトの配列res_colを返します。入力引数AggregationDepthを指定します。

    res_col = getMetrics (metric_engine,“mathworks.metrics.IOCount”,…‘AggregationDepth’,‘所有’);

    入力引数AggregationDepthには,所有没有一个の2つのオプションがあります。getMetricsメソッドメソッドで测定内容内容および値集计集计しないない场は,没有一个を指定します。

  5. 结果を表示します。

    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 /飞机动力学模型コンポーネントの値です。

参考

|||

関連するトピック