通过分析聚合的模型度量数据,您可以更好地理解模型及其组件的大小、复杂性和可读性。聚合的度量数据可在AggregatedValue
和AggregatedMeasures
属性的slmetric.metric.Result
对象。的AggregatedValue
属性聚合度量标量值。的AggregatedMeasures
属性聚合度量度量(即关于度量值的详细信息)。
模型指标的实现定义了指标如何跨组件层次结构聚合数据。对于MathWorks模型度量,slmetric.metric.Metric
类定义模型度量聚合。这个类包括AggregationMode
属性,它有以下选项:
总和
:返回价值
财产和价值
跨组件层次结构的子组件属性。的和Meaures
财产和措施
跨组件层次结构的子组件属性。
马克斯
:返回的最大值价值
财产和价值
跨组件层次结构的子组件属性。的最大值措施
财产和措施
跨组件层次结构的子组件属性。
没有一个
:不聚合度量值。
您可以找到关于MathWorks模型度量及其的描述AggregationMode
属性设置模型指标.对于自定义指标,作为算法
方法,您可以定义指标如何聚合数据。有关更多信息,请参见为非虚拟块计数创建自定义模型度量.
此图显示了软件如何跨模型层次结构的组件聚合度量数据。父模型位于层次结构的顶端。组件可以如下:
模型
子系统块
图表
MATLAB功能块
保护模式
这个示例展示了如何在度量引擎中以编程方式收集度量数据,然后访问聚合的度量数据。
加载sldemo_applyVarStruct
模型。
模型=“sldemo_applyVarStruct”;开放(模型);load_system(模型);
创建一个slmetric。引擎
对象,并设置分析根。
metric_engine = slmetric.Engine ();setAnalysisRoot (metric_engine,“根”模型,“RootType”,“模型”);
为输入输出模型度量收集数据。
execute (metric_engine mathworks.metrics.IOCount);
获取返回数组的模型度量数据slmetric.metric.ResultCollection
对象,res_col
.指定的输入参数AggregationDepth
.
res_col = getMetrics (metric_engine,“mathworks.metrics.IOCount”,…‘AggregationDepth’,‘所有’);
的AggregationDepth
输入参数有两个选项:所有
和没有一个
.如果你不想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
和AggregatedMeasures
属性是自身及其子组件的最大输入和输出数量。例如,对于sldemo_applyVarStruct
,AggregatedValue
属性是5
,也就是sldemo_applyVarStruct /飞机动力学模型
组件值。
slmetric.metric.Metric
|slmetric。引擎
|slmetric.metric.Result
|slmetric.metric.ResultCollection