slreportgen.report.ModelVariable class

Пакет: slreportgen.report

Переменный генератор отчетов модели

Описание

Генератор отчетов для переменной модели Simulink®.

Примечание

Использовать slreportgen.report.ModelVariable генератор отчетов в отчете, необходимо создать отчет с помощью slreportgen.report.Report класс или подкласс.

slreportgen.report.ModelVariable классом является handle класс.

Атрибуты класса

HandleCompatible
true

Для получения информации об атрибутах класса см. Атрибуты класса (MATLAB).

Создание

Описание

Вы не создаете slreportgen.report.ModelVariable возразите явным образом. Получить slreportgen.report.ModelVariable объект для найденной переменной модели:

  • Используйте find или next метод slreportgen.finder.ModelVariableFinder объект получить slreportgen.finder.ModelVariableResult объект для найденной переменной.

  • Вызовите getReporter метод slreportgen.finder.ModelVariableResult объект получить slreportgen.report.ModelVariable объект.

Можно настроить создание отчетов переменной модели путем установки свойств slreportgen.report.ModelVariable объект.

Свойства

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

Simulink.VariableUsage объект, который соответствует переменной, чтобы сообщить относительно. Объект содержит имя переменной, источник переменной и блоки, которые используют переменную. Это свойство доступно только для чтения.

Путь блока Model, который устанавливает значение переменных, заданное как вектор символов.

Предположим, что модель, на которую ссылаются, использует аргумент модели, чтобы установить значение параметров блоков. Если модель имеет несколько экземпляров модели, на которую ссылаются, переменное средство поиска модели возвращает несколько экземпляров переменной, которая сопоставлена с аргументом модели. ModelBlockPath свойство однозначно определяет экземпляр переменной путем обеспечения пути к блоку модели, которые устанавливают его значение. Если переменная не сопоставлена с аргументом модели в модели, на которую ссылаются, ModelBockPath isempty. Для получения дополнительной информации о моделях, на которые ссылаются, и специфичных для экземпляра параметрах, смотрите, Параметризовали Экземпляры Допускающей повторное использование Модели, на которую Ссылаются (Simulink).

Включать ли список блоков, которые используют эту переменную, заданную как true или false. Если FormatPolicy свойство имеет значение "Inline Text", список блоков не включен в отчет, независимо от значения ShowUsedBy свойство.

Если отчет включает в себя содержимое, о котором сообщают, для блока в Используемом списком, отмечание гиперссылки для блока берет вас к содержимому. Смотрите Генерируют Отчет Переменных Модели, Схемы и Блоки.

Включать ли рабочую область, что переменная разрешена в, заданный как true или false. Если FormatPolicy свойство имеет значение "Inline Text", рабочая область не включена в отчет, независимо от значения ShowWorkspaceInfo свойство.

Перечислите средство форматирования, которое форматирует список блоков, которые используют переменную, заданную как mlreportgen.dom.UnorderedList возразите или mlreportgen.dom.OrderedList объект. Чтобы настроить, как список отформатирован, измените свойства объекта списка или замените объект списка на индивидуально настраиваемый объект списка, который не содержит элементы списка.

Формат значений переменных, заданных как одна из этих строк или векторов символов:

  • "Auto" — Форматирует значения переменных как таблицу или абзац, в зависимости от типа данных значения.

    Типы данных, отформатированные как таблица, включают:

    • CellArray

    • Логический массив

    • Числовой массив

    • Таблица MATLAB®

    • Объект Simulink

    • Объект Stateflow®

    • Графический объект

    • Структура MATLAB или массив структур

    • Объект MATLAB или объектный массив

    Типы данных, отформатированные как абзац, включают:

    • Вектор ячейки

    • Логический скаляр или вектор

    • Числовой скаляр или вектор

    • Символ или символьный массив

    • Строка

    • Вектор структуры MATLAB

    • Вектор объекта MATLAB

  • "Table" — Форматирует значения переменных в таблице. Переменные, которые по умолчанию появляются как абзацы, отформатированы вместо этого как записи таблицы. Переменные, которые иерархически структурированы объекты, такие как MATLAB структуры, объекты MATLAB, объекты Simulink, объекты Stateflow или графические объекты, могут иметь свойства, которые являются самостоятельно объектами. В этом случае иерархия сглажена, и значение свойства отображено как гиперссылка на таблицу свойств того объекта. Таблица свойства объекта также имеет гиперссылку назад на исходную таблицу.

  • "Paragraph" — Отформатируйте значения переменных как абзац. Переменные, которые по умолчанию отформатированы как таблицы, сглажены и отформатированы как абзац.

  • "Inline Text" — Форматирует переменную в соответствии с сопроводительным текстом.

Табличный генератор отчетов раньше форматировал значение переменной, заданной как mlreportgen.report.BaseTable объект. Чтобы настроить внешний вид таблицы, измените свойства табличного генератора отчетов по умолчанию или замените его на индивидуально настраиваемый табличный генератор отчетов. Если вы добавляете содержимое в Title свойство значения по умолчанию или настроенного табличного генератора отчетов, содержимое появляется перед табличным заголовком в сгенерированном отчете.

Средство форматирования абзаца, чтобы отформатировать значение переменной модели, заданной как mlreportgen.dom.Paragraph объект. Чтобы настроить внешний вид абзаца, измените свойства mlreportgen.dom.Paragraph возразите или замените объект на индивидуально настраиваемый mlreportgen.dom.Paragraph объект. Если вы добавляете содержимое в значение по умолчанию или заменяющий объект абзаца, содержимое появляется перед переменным содержимым в сгенерированном отчете.

Текстовое средство форматирования, чтобы отформатировать имя и значение переменной модели, когда текст соответствует сопроводительному тексту, заданному как mlreportgen.dom.Text объект. Чтобы настроить внешний вид текста, измените свойства mlreportgen.dom.Text по умолчанию возразите или замените объект на индивидуально настраиваемый mlreportgen.dom.Text объект. Если вы добавляете содержимое в объект или текста замены по умолчанию, содержимое появляется перед переменным содержимым в сгенерированном отчете.

Максимальное количество столбцов таблицы, чтобы отобразиться, заданный как положительное целое число. Поскольку переменные типа массив сообщили об использовании таблицы, если количество столбцов больше значения MaxCols свойство, таблица нарезана вертикально. Разрезание делит таблицу на несколько таблиц.

Максимальное количество уровней, чтобы сообщить для переменной, которая является структурированным объектом или массивом структурированных объектов, заданных как неотрицательное целое число. Уровни, меньше чем или равные значению DepthLimit сглажены в последовательность связанных таблиц (см. FormatPolicy свойство. Об уровнях, больше, чем предел глубины, не сообщают. Если вы устанавливаете DepthLimit свойство к 0, структурированные объекты не расширены.

Максимальное количество объектов в иерархии объектов, чтобы сообщить, заданный как положительное целое число.

Включать ли заголовок, заданный как true или false. Заголовок содержит имя переменной и опционально, тип данных. Если IncludeTitle true, заголовок включен. По умолчанию заголовок включает только имя переменной. Чтобы включать тип данных переменной, установите ShowDataType свойство к true.

Показать ли тип данных переменной в заголовке, заданном как true или false.

Показать ли свойства, которые имеют пустые значения, заданные как true или false. ShowEmptyValues свойство применяется только к объекту MATLAB, объекту Simulink и переменным объекта Stateflow.

Показать ли свойства, которые используют значение по умолчанию, заданное как true или false. ShowDefaultValues свойство применяется только к объекту MATLAB, объекту Simulink и переменным объекта Stateflow.

Функция или выражение, чтобы отфильтровать свойства переменной модели, о которой сообщают, из отчета. Задайте функцию как указатель на функцию. Задайте выражение как скаляр строки или вектор символов. Это свойство применяется только к переменной, которая содержит объект. Если вы не обеспечиваете PropertyFilterFcn, все свойства переменной модели включены в отчет.

Если вы обеспечиваете указатель на функцию, присоединенная функция должна:

  • Возьмите эти аргументы:

    • variableName — Об имени переменной сообщают

    • variableObject — О переменной сообщают

    • propertyName — Имя свойства переменной, о которой сообщают

  • Возвратите true отфильтровать заданное свойство из отчета или false включать свойство в отчет.

Например, этот код предотвращает отображение Description и Complexity свойства Simulink.Parameter объект.

import slreportgen.finder.*
import slreportgen.report.*

rpt = slreportgen.report.Report('modelvarrpt','pdf');

model_name = load_system('sldemo_mdlref_datamngt');


finder = slreportgen.finder.ModelVariableFinder(model_name);

while hasNext(finder)
    result = next(finder);
    varRptr = getReporter(result);
    varRptr.PropertyFilterFcn = @varPropertyFilter;
    add(rpt,varRptr);
end

close(rpt);

close_system(model_name);
rptview(rpt);

function tf = varPropertyFilter(~, variableObject,propertyName)
if isa(variableObject, 'Simulink.Parameter')
    tf = (propertyName == "Description") ||  ...
        (propertyName == "Complexity");
else
    tf = false;
end
end

Если вы обеспечиваете скаляр строки или вектор символов, это должно содержать выражение. Выражение:

  • Может использовать переменные variableName, variableObject, и propertyName

  • Должен установить переменную isFiltered к true отфильтровать заданное свойство из отчета или false включать свойство в отчет

Например, этот код фильтрует CoderInfo свойство Simulink.Parameter объект из отчета.

import slreportgen.finder.*
import slreportgen.report.*

rpt = slreportgen.report.Report('modelvarrpt','pdf');

model_name = load_system('sldemo_mdlref_datamngt');


finder = slreportgen.finder.ModelVariableFinder(model_name);

while hasNext(finder)
    result = next(finder);
    varRptr = getReporter(result);
    
    varRptr.PropertyFilterFcn = "isFiltered = " + ...
        "isa(variableObject, 'Simulink.Parameter') && " + ...
        "propertyName == 'CoderInfo';";
    add(rpt,varRptr);
end

close(rpt);

close_system(model_name);
rptview(rpt);

Формат или точность раньше отображали числовые значения нецелого числа.

Задайте формат как скаляр строки или вектор символов. Смотрите formatSpec аргумент на sprintf страница с описанием.

Задайте точность как положительное целое число. Смотрите precision аргумент на num2str страница с описанием.

Пример: "%.2f" отображения удваивают значения с двумя цифрами справа от десятичного разряда.

Пример 2 отображает максимальное количество двух значительных цифр.

Источник шаблона для этого генератора отчетов, заданного одним из этих способов:

  • Вектор символов или скаляр строки, который задает путь файла, который содержит шаблон для этого генератора отчетов

  • Генератор отчетов или отчет, шаблон которого используется в этом генераторе отчетов или чья библиотека шаблонов содержит шаблон для этого генератора отчетов

  • Документ DOM или часть документа, шаблон которой используется в этом генераторе отчетов или чья библиотека шаблонов содержит шаблон для этого генератора отчетов

Заданный шаблон должен быть тем же типом как отчет, к которому добавлен этот генератор отчетов. Например, для отчета Word Microsoft®, TemplateSrc должен быть шаблон генератора отчетов Word. Если TemplateSrc свойство пусто, этот генератор отчетов использует шаблон генератора отчетов по умолчанию в выходном типе отчета.

Имя шаблона для этого генератора отчетов, заданного как вектор символов или скаляр строки. Шаблон для этого генератора отчетов находится в библиотеке шаблонов источника шаблона (TemplateSrc) для этого генератора отчетов.

Цель гиперссылки для этого генератора отчетов, заданного как строка или символьный массив, который задает ID цели ссылки или mlreportgen.dom.LinkTarget объект. Значение строки или символьного массива преобразовано в LinkTarget объект. Объект цели ссылки сразу предшествует содержимому этого генератора отчетов в выходном отчете.

Методы

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

Примеры

свернуть все

Используйте свойства slreportgen.report.ModelVariable объект настроить форматирование переменной.

% Create a Report
rpt = slreportgen.report.Report("MyReport","pdf");

% Create a Chapter
chapter = mlreportgen.report.Chapter();
chapter.Title = "Model Variable Reporter Example";

% Load the model
model_name = "sf_car";
load_system(model_name);

% Find the variables in the model
finder = slreportgen.finder.ModelVariableFinder(model_name);

while hasNext(finder)
    result = next(finder);
    
    % Get the ModelVariable reporter for the result
    % Customize the formatting of numbers
    reporter = getReporter(result);
    reporter.NumericFormat = "%.4f";
    
    % Add the reporter to the chapter
    add(chapter,reporter);
end
% Add chapter to the report
add(rpt,chapter);

% Close the report and open the viewer
close(rpt);
rptview(rpt);

Сгенерируйте отчет, который включает:

  • Глава для переменных модели

  • Глава для каждой диаграммы модели, с разделом для блоков в схеме

Каждое имя блока в Используемом списком для переменной модели является гиперссылкой на соответствующее содержимое, о котором сообщают для блока.

% Create a Report
rpt = slreportgen.report.Report("MyReport","pdf");

% Load the model
model_name = "sf_car";
load_system(model_name);

% Create a Chapter for the Variables
chapter = mlreportgen.report.Chapter();
chapter.Title = sprintf("Model Variable Report for the %s model",model_name);

% Find the variables in the model
finder = slreportgen.finder.ModelVariableFinder(model_name);

% Report on the variables
while hasNext(finder)
    result = next(finder);
    reporter = getReporter(result);
    add(chapter,reporter);
end
add(rpt,chapter);

% Add diagrams to the report
finder = slreportgen.finder.DiagramFinder(model_name);
while hasNext(finder)
    result = next(finder);
    ch = mlreportgen.report.Chapter(result.Name);
    add(ch, result);
    % Add a section for the blocks in the diagram
    sect = mlreportgen.report.Section("Title","Blocks");
    blFinder = slreportgen.finder.BlockFinder(result.Object);
    while hasNext(blFinder)
        blockresult = next(blFinder);
        add(sect,blockresult);
    end
    add(ch,sect);
    add(rpt, ch);
end

% Close and view the report
close(rpt);
rptview(rpt);

Введенный в R2019b