Отчеты о функциях MATLAB

Когда вы моделируете, обновляете или генерируете код из Simulink® модель, которая содержит блоки MATLAB Function или Stateflow® графики с MATLAB® functions, Simulink генерирует отчет для каждой функции MATLAB в вашей модели. Используйте отчет для отладки функций MATLAB и проверки того, что они подходят для генерации кода. Отчет содержит информацию о типах переменных и выражениях в функциях, которая может помочь вам найти источники сообщений об ошибке и понять правила распространения типов.

Stateflow создает по одному отчету для каждой диаграммы Stateflow, независимо от количества функций MATLAB, которые она содержит.

Если у вас в модели идентичные блоки MATLAB Function, для идентичных блоков генерируется один отчет.

Откройте отчет о функции MATLAB

Чтобы открыть отчет о функции MATLAB, используйте один из следующих методов:

Примечание

Первый раз, когда вы открываете отчет о функции MATLAB, Simulink автоматически обновляет вашу модель. Если вы вносите последующие изменения в код MATLAB в блоке, необходимо обновить модель перед повторным открытием отчета. В противном случае отчет не отражает ваши изменения. На вкладке Modeling выберите Update Model или нажмите Ctrl+D. Для получения дополнительной информации см. «Обновление схемы» и «Запуск симуляции».

Анализ исходного кода MATLAB

На панели MATLAB Source представление Function List организует функции по файлу, который их содержит. Для визуализации функций в соответствии со структурой вызова используйте представление Call Tree.

Отчет о функции MATLAB доступен только для чтения. Чтобы отредактировать функцию, выберите имя функции в панели MATLAB Source и нажмите Edit in MATLAB.

Чтобы просмотреть функцию MATLAB на панели кода, щелкните имя функции на панели MATLAB Source. На панели кода, когда вы останавливаетесь на переменной или выражении, подсказка отображает информацию о ее размере, типе и сложности. Кроме того, подсветка синтаксиса помогает вам идентифицировать элементы синтаксиса MATLAB и некоторые атрибуты генерации кода, такие как является ли функция внешней или является ли аргумент постоянным.

Внешние функции

Отчет идентифицирует внешнюю функцию с фиолетовым текстом. Подсказка указывает, что функция является внешней.

Постоянные аргументы

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

Знание значения постоянного аргумента помогает вам понять сгенерированные сигнатуры функции. Это также помогает вам увидеть, когда генерация кода создает специализацию функции для различных значений постоянных аргументов.

Чтобы экспортировать значение в переменную в рабочей области, щелкните значок «Экспорт».

Просмотр ошибок и предупреждающих сообщений

Чтобы просмотреть ошибки и предупреждения, в нижней панели отчета откройте вкладку All Messages. Чтобы выделить исходный код ошибки или предупреждения, щелкните сообщение. Это - лучшая практика обращения к первому сообщению в списке, поскольку последующие ошибки и предупреждения часто связаны с первым сообщением.

Просмотр переменного MATLAB

Чтобы просмотреть информацию о переменных для выбранной функции MATLAB, в нижней панели отчета откройте вкладку Variables.

Таблица переменных показывает:

  • Класс, размер и сложность

  • Свойства фиксированных точек

Эта информация помогает вам отлаживать ошибки, такие как ошибки несоответствия типов, и понимать распространение типов.

Визуальные индикаторы на вкладке Переменные

Эта таблица описывает символы, значки и другие индикаторы в таблице переменных.

Столбец в таблице переменныхИндикаторОписание
ИмярасширительПеременная имеет элементы или свойства, которые можно увидеть, щелкнув по расширителю.
Имя{:}Неоднородный массив ячеек (все элементы имеют одинаковые свойства).
Имя{n}nпервый элемент массива гетерогенного массива ячеек.
Классv > nv используется повторно с другим классом, размером и сложностью. Номер n определяет повторное использование с уникальным набором свойств. Когда вы останавливаетесь на переименованной переменной, в отчете подсвечиваются только образцы этой переменной, которые имеют общий класс, размер и сложность. См. «Повторное использование той же переменной с другими свойствами».
Размер:nМассив переменного размера с верхней границей n.
Размер:?Массив переменного размера без верхней границы.
РазмеркурсивМассив переменного размера, размерности которого не изменяют размер во время выполнения.
Классsparse префиксРазреженный массив.
Классcomplex префиксКомплексное число.
Класс

Тип с фиксированной точкой.

Чтобы увидеть свойства фиксированной точки, щелкните значок.

Программный доступ к отчетам о функциях MATLAB

Вы можете получить доступ к отчетам о функциях MATLAB, вызывая эти функции на MATLABFunctionConfiguration объекты:

  • openReport открывает отчет функции MATLAB для блока.

  • closeReport закрывает отчет функции MATLAB для блока.

  • getReport возвращает MATLABFunctionReport объект для блока. Вы можете запросить информацию отчета от этого объекта путем доступа к его Functions свойство, которое является массивом coder.Function объекты. См. Кодер. Свойства функции (MATLAB Coder).

Например, чтобы создать пользовательский отчет, в котором перечислены функции и переменные в блоке MATLAB Function в модели call_stats_block1 описан в разделе Создание пользовательской функциональности Используя Блок MATLAB Function, выполните следующие шаги:

  1. Доступ к MATLABFunctionConfiguration объект для блока MATLAB Function.

    config = get_param('call_stats_block1/MATLAB Function', ...
        'MATLABFunctionConfiguration');
  2. Создайте MATLABFunctionReport объект для блока MATLAB Function.

    report = getReport(config);
  3. Доступ к coder.Function объекты в отчете.

    functions = report.Functions;
  4. Создайте пользовательский отчет.

    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

Ограничения по отчетам

  • Таблица переменных не показывает отдельные элементы varargin и varargout.

  • В отчете не показана полная информация для развернутых циклов. Он отображает типы данных одной произвольной итерации.

  • В отчете не отображается информация о мертвом коде.

См. также

| | | |

Похожие темы