При моделировании, обновлении или создании кода из модели Simulink ®, содержащей функциональные блоки MATLAB или диаграммы Stateflow ® с функциями MATLAB ®, Simulink создает отчет для каждой функции MATLAB в модели. Используйте отчет для отладки функций MATLAB и проверки их пригодности для создания кода. Отчет предоставляет информацию о типе переменных и выражений в функциях, которая помогает найти источники сообщений об ошибках и понять правила распространения типов.
Stateflow создает один отчет для каждой диаграммы Stateflow независимо от количества содержащихся в ней функций MATLAB.
При наличии идентичных функциональных блоков MATLAB в модели для идентичных блоков создается отдельный отчет.
Чтобы открыть отчет о функциях MATLAB, используйте один из следующих методов:
Откройте функцию MATLAB. На вкладке «Редактор» выберите «Просмотр отчета».
Моделирование или обновление модели. При возникновении ошибки компиляции в окне Diagnostic Viewer выберите report ссылка.
Позвоните в openReport функции на MATLABFunctionConfiguration объект для блока. Дополнительные сведения см. в разделе Программный доступ к функциональным отчетам MATLAB.
Примечание
При первом открытии отчета о функциях MATLAB Simulink автоматически обновляет модель. При внесении последующих изменений в код MATLAB в блоке перед повторным открытием отчета необходимо обновить модель. В противном случае отчет не отражает ваши изменения. На вкладке Моделирование (Modeling) выберите Обновить модель (Update Model) или нажмите клавиши CTRL + D. Дополнительные сведения см. в разделах Обновление схемы и Выполнение моделирования.
На панели Источник MATLAB (MATLAB Source) представление Список функций (Function List) организует функции по файлу, содержащему их. Для визуализации функций в соответствии со структурой вызова используется ракурс дерева вызовов.
Отчет функции MATLAB доступен только для чтения. Чтобы изменить функцию, выберите имя функции на панели Источник MATLAB (MATLAB Source) и щелкните Править (Edit) в MATLAB (MATLAB).
Чтобы просмотреть функцию MATLAB на панели кода, щелкните имя функции на панели Источник MATLAB (MATLAB Source). На панели кода при приостановке переменной или выражения в подсказке отображается информация о ее размере, типе и сложности. Кроме того, подсветка синтаксиса помогает идентифицировать элементы синтаксиса MATLAB и определенные атрибуты генерации кода, например, является ли функция внешней или аргумент постоянным.
Отчет идентифицирует внешнюю функцию с фиолетовым текстом. Подсказка указывает, что функция является внешней.

Оранжевый текст указывает аргумент константы времени компиляции для функции точки входа или специализированной функции. Всплывающая подсказка содержит постоянное значение.

Знание значения постоянного аргумента помогает понять созданные сигнатуры функций. Это также помогает определить, когда при создании кода создаются специализации функций для различных значений постоянных аргументов.
Чтобы экспортировать значение в переменную в рабочей области, щелкните значок Экспорт (Export).![]()
Для просмотра ошибок и предупреждений в нижней части отчета откройте вкладку Все сообщения. Чтобы выделить исходный код для ошибки или предупреждения, щелкните сообщение. Рекомендуется обращаться к первому сообщению в списке, поскольку последующие ошибки и предупреждения часто связаны с первым сообщением.
Для просмотра информации о переменных для выбранной функции MATLAB на нижней панели отчета откройте вкладку Переменные.
Таблица переменных показывает:
Класс, размер и сложность
Свойства типов с фиксированной точкой
Эта информация помогает отлаживать ошибки, например ошибки несоответствия типов, и понимать распространение типов.
В этой таблице описываются символы, значки и другие индикаторы в таблице переменных.
| Столбец в таблице переменных | Индикатор | Описание |
|---|---|---|
| Имя | расширитель | Переменная имеет элементы или свойства, которые можно увидеть, щелкнув расширитель. |
| Имя | {:} | Гетерогенный массив ячеек (все элементы имеют одинаковые свойства). |
| Имя | {n} | n-й элемент гетерогенного клеточного массива. |
| Класс | v > n | v повторно используется с другим классом, размером и сложностью. Число n определяет повторное использование с уникальным набором свойств. При приостановке переименованной переменной отчет выделяет только экземпляры этой переменной, которые имеют общий класс, размер и сложность. См. раздел Повторное использование одной и той же переменной с различными свойствами. |
| Размер | :n | Массив переменного размера с верхней границей n. |
| Размер | :? | Массив переменного размера без верхней границы. |
| Размер | курсив | Массив переменного размера, размеры которого не изменяют размер во время выполнения. |
| Класс | sparse префикс | Разреженный массив. |
| Класс | complex префикс | Комплексное число. |
| Класс |
| Тип с фиксированной точкой. Чтобы просмотреть свойства фиксированной точки, щелкните значок. |
Доступ к отчетам по функциям MATLAB осуществляется путем вызова этих функций на MATLABFunctionConfiguration объекты:
openReport открывает функциональный отчет MATLAB для блока.
closeReport закрывает отчет функции MATLAB для блока.
getReport возвращает MATLABFunctionReport объект для блока. Вы можете запросить данные отчета у этого объекта, обращаясь к его Functions свойство, которое является массивом coder.Function объекты. См. кодер. Свойства функции (кодер MATLAB).
Например, для создания пользовательского отчета, в котором перечислены функции и переменные в блоке MATLAB Function в модели. call_stats_block1 описанные в разделе Создание пользовательской функциональности с помощью функционального блока MATLAB, выполните следующие действия.
Доступ к MATLABFunctionConfiguration объект для функционального блока MATLAB.
config = get_param('call_stats_block1/MATLAB Function', ... 'MATLABFunctionConfiguration');
Создать MATLABFunctionReport объект для функционального блока MATLAB.
report = getReport(config);
Доступ к coder.Function объектов в отчете.
functions = report.Functions;
Создайте пользовательский отчет.
for i = 1:numel(functions) fprintf('Function %s uses these variables:\n',functions(i).Name) variables = functions(i).Variables; for j = 1:numel(variables) fprintf('%d. %s -- %s\n',j,variables(j).Name,variables(j).Scope) end fprintf('\n') end
Function stats uses these variables: 1. mean -- Output 2. stdev -- Output 3. vals -- Input 4. len -- Local Function avg uses these variables: 1. mean -- Output 2. array -- Input 3. size -- Input
closeReport | getReport | MATLABFunctionConfiguration | MATLABFunctionReport | openReport