Main Content

execute

R2026b

Collect metric data

Since R2022a

Description

results = execute(metricEngine,metricIDs) collects results in the specified metricEngine object for the metrics identified by metricIDs.

example

results = execute(metricEngine,metricIDs,ScopeId=scopeId) collects metrics for a specific artifact in your project.

Examples

collapse all

Use a metric.Engine object to collect design cost metric data on a model reference hierarchy in a project.

To open the project, enter this command.

openExample('simulink/VisualizeModelReferenceHierarchiesExample')

The project contains sldemo_mdlref_depgraph, which is the top-level model in a model reference hierarchy. This model reference hierarchy represents one design unit.

Create a metric.Engine object.

metric_engine = metric.Engine();

Update the trace information for metric_engine to reflect any pending artifact changes.

updateArtifacts(metric_engine)

Create an array of metric identifiers for the metrics you want to collect. For this example, create a list of all available design cost estimation metrics.

metric_Ids = getAvailableMetricIds(metric_engine,...
    App="DesignCostEstimation")
metric_Ids =

  1×2 string array

    "DataSegmentEstimate"    "OperatorCount"

To collect results, execute the metric engine.

execute(metric_engine,metric_Ids);

Because you executed the engine without specifying a ScopeId, the engine collects metrics for the entire sldemo_mdlref_depgraph model reference hierarchy.

Use the generateReport function to access detailed metric results in a PDF report. Name the report "MetricResultsReport.pdf".

reportLocation = fullfile(pwd,"MetricResultsReport.pdf");
generateReport(metric_engine,...
    App="DesignCostEstimation",...
    Type="pdf",...
    Location=reportLocation);

The report contains a detailed breakdown of the operator count and data segment estimate metric results.

Table of contents for generated report.

Input Arguments

collapse all

Metric engine object for which to collect metric results, specified as a metric.Engine object.

Metric identifiers for metrics to collect, specified as a character vector, cell array of character vectors, string, or string array. Collecting results for design cost metrics requires a Fixed-Point Designer™ license. For a list of design cost metrics and their identifiers, see Design Cost Model Metrics. For additional metrics, see Model and Code Testing Metrics (Simulink Check).

Example: "DataSegmentEstimate"

Example: ["DataSegmentEstimate", "OperatorCount"]

Digital thread URI for the artifact for which you want to collect metric results, specified as a string scalar.

A digital thread URI is a stable identifier for an artifact, such as a model file, or a sub-file artifact, such as a block. The digital thread uses these URIs as a consistent way to refer to artifacts across tools and inside metric results. The scopes that a metric supports depend on the metric. To learn what scopes a metric operates on, see the metric documentation. Use the appropriate function from the digitalthread.uri namespace to get the URI for the artifact. For example, use digitalthread.uri.simulink.fromObject to get the URI for a model or element in a model.

Example: "mwdigitalthread://myProject/myModel.slx#addr=myModel/###"

Data Types: string

Output Arguments

collapse all

Metric results, returned as an array of metric.Result objects.

Version History

Introduced in R2022a

expand all