выполнение

Класс: slmetric. Механизм
Пакет: slmetric

Соберите метрические данные

Синтаксис

execute(metric_engine)
execute(slmetric_obj,MetricIDs)

Описание

Соберите образцовые метрические данные для заданного метрического объекта механизма. Образцовые метрические данные основаны на заданных архитектурных компонентах. Компоненты являются этими объектами Simulink:

  • Модель

  • Блок Subsystem

  • График

  • Блок MATLAB function

  • Модель Protected

пример

execute(metric_engine) собирает метрические данные для доступных образцовых метрик, которые могут включать метрики MathWorks и пользовательские метрики.

пример

execute(slmetric_obj,MetricIDs) собирает метрические данные только для заданных метрик, которые могут быть метриками MathWorks или пользовательскими метриками.

Входные параметры

развернуть все

Создайте объект slmetric.Engine.

metric_engine = slmetric.Engine();

Метрический идентификатор для Образцовых Метрик или пользовательских образцовых метрик, которые вы создаете. Можно задать один или несколько метрических идентификаторов. Можно получить метрические идентификаторы путем вызова slmetric.metric.getAvailableMetrics.

Пример: 'mathworks.metrics.DescriptiveBlockNames'

Примеры

развернуть все

Соберитесь и модель доступа метрические данные для модели sldemo_mdlref_basic.

Создайте объект slmetric.Engine и установите корень в модели для анализа.

metric_engine = slmetric.Engine();

% Include referenced models and libraries in the analysis.
% These properties are on by default.
metric_engine.AnalyzeModelReferences = 1;
metric_engine.AnalyzeLibraries = 1;

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

Соберите образцовые метрические данные

execute(metric_engine);

Получите образцовые метрические данные, которые возвращают массив объектов slmetric.metric.ResultCollection, res_col.

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

Отобразите результаты для метрики mathworks.metrics.SimulinkBlockCount.

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)]);
        end
    else
        disp(['No results for:', result(n).MetricID]);
    end
    disp(' ');
end

Соберитесь и модель доступа метрические данные для модели sldemo_mdlref_basic.

Создайте объект slmetric.Engine. Включайте модели, на которые ссылаются, и библиотеки в анализе и установите корень в модели для анализа.

metric_engine = slmetric.Engine();
metric_engine.AnalyzeModelReferences = 1;
metric_engine.AnalyzeLibraries = 1;

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

Соберите образцовые метрические данные

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

Получите образцовые метрические данные, которые возвращают массив объектов slmetric.metric.ResultCollection, res_col.

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

Отобразите результаты для метрики mathworks.metrics.ExplicitIOCount.

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

Для ComponentPath: sldemo_mdlref_basic значением является 3, потому что существует 3 выходные параметры. Эти три выходных параметров в своей стихии массива Measures. slmetric.metric.AggregationMode является Max, таким образом, AggregatedValue является 4, который является количеством вводов и выводов к sldemo_mdlref_counter. Массив AggregratedMeasures содержит максимальное количество вводов и выводов для компонента или субкомпонента.

Введенный в R2016a