Main Content

slmetric.metric.ResultCollection

Metric data for specified model metric

Description

An slmetric.metric.ResultCollection object contains the metric data for a specific model metric.

Creation

Description

example

res_collections = getMetrics(metric_engine) returns the result collection objects for all metrics that the metric engine executed in an array.

Properties

expand all

Metric identifier for a MathWorks metric or a custom metric, specified as a character vector. You can get metric identifiers by calling slmetric.metric.getAvailableMetrics.

Example: 'mathworks.metrics.SimulinkBlockCount'

This property is read-only.

Status code of the metric execution, returned as an integer.

IntegerStatus
1

No result. The metric algorithm is not applicable to the analyzed system. The components analyzed by the metric were not found, or the metric has a compile requirement cannot be executed on the library model.

0

Result collected.

-1

No result. Error executing metric.

-2

No result available from previous run.

-3

No result. Compilation error.

-4

Empty result. Missing prerequisite.

This property is read-only.

Metric data category, returned as one of these four categories:

  • Compliant — Metric data that is in an acceptable range.

  • Warning — Metric data that requires review.

  • NonCompliant — Metric data that requires you to modify your model.

  • Uncategorized — Metric data that has no threshold values.

If at least one component is NonCompliant, this property returns NonCompliant. If at least one component is Warning and no components are NonCompliant, this property returns Warning. If all components are Compliant, this property returns Compliant.

This property is read-only.

Whether metric data is current, returned as true or false. If true, the metric data is out-of-date because the model or source files have changed.

This property is read-only.

Metric data collected when you call the execute method for one or more metrics, returned as an array of slmetric.metric.Result objects.

Examples

collapse all

This example shows how to collect and access metric data for the model sldemo_mdlref_basic.

Create an slmetric.Engine object and set the root in the model for analysis.

metric_engine = slmetric.Engine();

% Include referenced models and libraries in the analysis,
%   these properties are on by default
metric_engine.ModelReferencesSimulationMode = 'AllModes';
metric_engine.AnalyzeLibraries = 1;

setAnalysisRoot(metric_engine, 'Root', 'sldemo_mdlref_basic')

Collect model metric data.

execute(metric_engine, 'mathworks.metrics.ExplicitIOCount');

Return the model metric data as an array of slmetric.metric.ResultCollection objects and assign it to res_col.

res_col = getMetrics(metric_engine, 'mathworks.metrics.ExplicitIOCount');

Display the results for the mathworks.metrics.ExplicitIOCount metric.

for n=1:length(res_col)
    if res_col(n).Status == 0
        result = res_col(n).Results;
        
        for m=1:length(result)
            disp(['MetricID: ',result(m).MetricID]);
            disp(['  ComponentPath: ',result(m).ComponentPath]);
            disp(['  Value: ', num2str(result(m).Value)]);
            disp(['  AggregatedValue: ', num2str(result(m).AggregatedValue)]);
            disp(['  Measures: ', num2str(result(m).Measures)]);
            disp(['  AggregatedMeasures: ', num2str(result(m).AggregatedMeasures)]);
        end
    else
        disp(['No results for:', result(n).MetricID]);
    end
    disp(' ');
end
MetricID: mathworks.metrics.ExplicitIOCount
  ComponentPath: sldemo_mdlref_basic
  Value: 3
  AggregatedValue: 4
  Measures: 0  3
  AggregatedMeasures: 3  3
MetricID: mathworks.metrics.ExplicitIOCount
  ComponentPath: sldemo_mdlref_basic/More Info
  Value: 0
  AggregatedValue: 0
  Measures: 0  0
  AggregatedMeasures: 0  0
MetricID: mathworks.metrics.ExplicitIOCount
  ComponentPath: sldemo_mdlref_counter
  Value: 4
  AggregatedValue: 4
  Measures: 3  1
  AggregatedMeasures: 3  1
 

For ComponentPath: sldemo_mdlref_basic, the value is 3 because there are three outputs. The three outputs are in the second element of the Measures array. The slmetric.metric.AggregationMode is Max, so the AggregatedValue is 4, which is the number of inputs and outputs to sldemo_mdlref_counter. The AggregatedMeasures array contains the maximum number of inputs and outputs for a component or subcomponent.

Introduced in R2016a