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

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

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

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

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

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

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

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

  • Для блоков MATLAB Function вызовите openReport функция на MATLABFunctionConfiguration объект сопоставлен с блоком. Для получения дополнительной информации смотрите Программно доступ к Отчетам функции MATLAB.

Примечание

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

Анализируйте исходный код MATLAB

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

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

Чтобы просмотреть функцию 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_block2 описанный в Создают Пользовательскую Функциональность Используя блоки MATLAB function, выполняют эти шаги:

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

    config = get_param('call_stats_block2/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

Примечание

MATLABFunctionReport объект не содержит информацию об ошибках и предупреждениях. Чтобы найти ошибки и предупреждения в блоке MATLAB Function, откройте отчет или используйте отладчик в MATLAB Function Block Editor. Для получения дополнительной информации смотрите, Определяют местоположение и Фиксируют блоки MATLAB function Отладки и Ошибки.

Сообщите об ограничениях

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

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

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

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

| | | | |

Похожие темы