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

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

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

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

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

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

  • Откройте функцию MATLAB. Во вкладке Editor нажмите View Report.

  • Симулируйте или обновите модель. Если ошибка компиляции происходит в окне Diagnostic Viewer, выберите report ссылка.

  • Вызовите openReport функция на MATLABFunctionConfiguration объект для блока. Для получения дополнительной информации смотрите Программно доступ к Отчетам функции 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элемент th неоднородного массива ячеек.
Классv > nv снова используется с различным классом, размером и сложностью. Номер n идентифицирует повторное использование с уникальным набором свойств. Когда вы делаете паузу на переименованной переменной, отчет подсвечивает только экземпляры этой переменной, которые совместно используют класс, размер и сложность. Смотрите Повторное использование Та же Переменная с Различными Свойствами.
Размер:nМассив переменного размера с верхней границей n.
Размер:?Массив переменного размера без верхней границы.
РазмеркурсивМассив переменного размера, размерности которого не изменяют размер во время выполнения.
Классsparse префиксРазреженный массив.
Классcomplex префиксКомплексное число.
Класс

Фиксированная точка.

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

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

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

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

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

  • getReport возвращает MATLABFunctionReport объект для блока. Вы можете информация об отчете о запросах от этого объекта путем доступа к его Functions свойство, которое является массивом coder.Function объекты. См. 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.

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

  • Отчет не показывает информацию о мертвом коде.

Смотрите также

| | | |

Похожие темы