主要内容

以编程方式收集模型度量

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

这个示例展示了如何使用模型度量API以编程方式收集模型的子系统和块计数度量。在为模型收集度量之后,您可以访问结果并将它们导出到一个文件中。

示例模型

打开vdp模型。

模型=“vdp”;open_system(模型);

收集度量标准

要收集模型上的度量数据,创建slmetric。引擎对象和调用执行

metric_engine = slmetric.Engine ();setAnalysisRoot (metric_engine“根”“vdp”“RootType”“模型”);执行(metric_engine);
更新Model Advisor缓存…模型Advisor缓存已更新。对于新的自定义,要更新缓存,请使用Advisor.Manager。refresh_customizations方法。

访问结果

使用getMetrics方法指定要收集的指标。的块计数和子系统计数指标vdp模型。getMetrics返回slmetric.metric.ResultCollection对象。

res_col = getMetrics (metric_engine, {“mathworks.metrics.金宝appSimulinkBlockCount”...“mathworks.metrics.SubSystemCount”});

存储和显示结果

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

metricData = {“MetricID”“ComponentPath”“价值”};问= 1;n = 1:长度(res_col)如果res_col (n)。Status == 0 results = res_col(n).Results;m = 1:长度(结果)disp ([“MetricID:”,结果(m) .MetricID]);disp ([“ComponentPath:”,结果(m) .ComponentPath]);disp ([的价值:num2str(结果(m) value)]);metricData {cnt + 1, 1} = (m) .MetricID结果;metricData{问+ 1,2}= (m) .ComponentPath结果;metricData{问+ 1,3}=结果(m) value;CNT = CNT + 1;结束其他的disp ([“没有结果:”, res_col (n) .MetricID]);结束disp (' ');结束
MetricID: mathworks.metrics.金宝appSimulinkBlockCount
ComponentPath: vdp
价值:13
MetricID: mathworks.metrics.金宝appSimulinkBlockCount
ComponentPath: vdp /更多信息
值:1
MetricID: mathworks.metrics.金宝appSimulinkBlockCount
ComponentPath: vdp/More Info/Model Info
值:1
MetricID: mathworks.metrics.金宝appSimulinkBlockCount
ComponentPath: vdp/More Info/Model Info/ empty子系统
值:0

              
MetricID: mathworks.metrics.SubSystemCount
ComponentPath: vdp
值:1
MetricID: mathworks.metrics.SubSystemCount
ComponentPath: vdp /更多信息
值:0
MetricID: mathworks.metrics.SubSystemCount
ComponentPath: vdp/More Info/Model Info
值:1
MetricID: mathworks.metrics.SubSystemCount
ComponentPath: vdp/More Info/Model Info/ empty子系统
值:0

              

导出的结果

出口的MetricIDComponentPath,价值对于电子表格,使用writetable写…的内容metricDataMySpreadsheet.xlsx

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

要将度量结果导出到XML文件,请使用exportMetrics方法。对于每个指标结果,XML文件包括ComponentIDComponentPathMetricID价值AggregatedValue,测量

文件名=“MyMetricResults.xml”;exportMetrics (metric_engine文件名)

关闭vdp模型。

bdclose(模型);

限制

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

另请参阅

||

相关的话题