主要内容

以编程方式收集模型度量

您可以使用模型指标API以编程方式收集模型指标,以帮助您评估模型的体系结构、复杂性和可读性。这些指标的结果可以帮助您验证是否符合行业标准和指导方针。

此示例演示如何使用模型度量API以编程方式收集模型的子系统和块计数度量。收集模型的度量后,您可以访问结果并将其导出到文件。

示例模型

打开vdp模型

模型=“vdp”开放式系统(模型);

收集指标

要收集模型上的度量数据,请创建公制发动机对象和调用处决.

公制_引擎=slmetric.engine();setAnalysisRoot(公制发动机,“根”,“vdp”,“根类型”,“模型”);执行(公制引擎);
正在更新Model Advisor缓存…Model Advisor缓存已更新。对于新的自定义设置,要更新缓存,请使用Advisor.Manager.refresh\u customizations方法。

访问结果

使用getMetrics方法指定要收集的度量。对于本例,请指定vdp模型getMetrics返回slmetric.metric.ResultCollection物体。

res_col=getMetrics(metric_引擎{'mathworks.metrics.金宝appSimulinkBlockCount',...'mathworks.metrics.SubSystemCount'});

存储和显示结果

创建一个单元格数组计量数据储存MetricID,ComponentPath价值度量结果的属性MetricID属性是度量的标识符ComponentPath属性是为其计算度量的组件的路径,以及价值属性是度量值。编写一个循环以显示结果。

计量数据={“MetricID”,“组件路径”,“价值”}cnt=1;对于n = 1:长度(res_col)如果res_col(n).Status==0 results=res_col(n).results;对于m=1:长度(结果)显示([“MetricID:”,结果(m) .MetricID]);disp(['组件路径:',结果(m).组件路径];显示(['值:',num2str(results(m).Value)];metricData{cnt+1,1}=results(m).MetricID;metricData{cnt+1,2}=results(m).ComponentPath;metricData{cnt+1,3}=results(m).Value;cnt=cnt+1;终止其他的disp(['没有结果:',res_col(n.MetricID));终止disp(' ');终止
MetricID:mathworks.metrics.S金宝appimulinkBlockCount
组件路径:vdp
价值:13
MetricID:mathworks.metrics.S金宝appimulinkBlockCount
组件路径:vdp/更多信息
价值:1
MetricID:mathworks.metrics.S金宝appimulinkBlockCount
ComponentPath: vdp/More Info/Model Info
价值:1
MetricID:mathworks.metrics.S金宝appimulinkBlockCount
组件路径:vdp/更多信息/型号信息/清空子系统
数值:0

              
MetricID:mathworks.metrics.SubSystemCount
组件路径:vdp
价值:1
MetricID:mathworks.metrics.SubSystemCount
组件路径:vdp/更多信息
数值:0
MetricID:mathworks.metrics.SubSystemCount
ComponentPath: vdp/More Info/Model Info
价值:1
MetricID:mathworks.metrics.SubSystemCount
组件路径:vdp/更多信息/型号信息/清空子系统
数值:0

              

输出结果

输出MetricID,ComponentPath价值要创建电子表格,请使用可写写…的内容计量数据MySpreadsheet.xlsx.

文件名=“MySpreadsheet.xlsx”;T=表(metricData);可写(T,文件名);

要将度量结果导出到XML文件,请使用exportMetrics对于每个度量结果,XML文件包括组件,ComponentPath,MetricID,价值,聚合值测量.

文件名=“MyMetricResults.xml”;导出度量(度量引擎,文件名)

关闭vdp模型

bdclose(模型);

局限性

收集度量数据时,它存储在数据库文件中,Metrics.db,在模拟缓存文件夹内。您不能在一个平台上收集度量数据,将数据库文件移动到另一个平台,然后继续在该数据库文件中收集额外的度量数据。例如,如果在Windows机器上收集度量数据,然后将数据库文件移动到Linux机器上,则不能在该数据库文件中收集和存储额外的度量数据。但是,您可以在Metrics Dashboard中查看该数据。

另见

||

相关的话题