exponenta event banner

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

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

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

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

Открытие отчета по функциям MATLAB

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

Примечание

При первом открытии отчета о функциях MATLAB Simulink автоматически обновляет модель. При внесении последующих изменений в код MATLAB в блоке перед повторным открытием отчета необходимо обновить модель. В противном случае отчет не отражает ваши изменения. На вкладке Моделирование (Modeling) выберите Обновить модель (Update Model) или нажмите клавиши CTRL + D. Дополнительные сведения см. в разделах Обновление схемы и Выполнение моделирования.

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

На панели Источник MATLAB (MATLAB Source) представление Список функций (Function List) организует функции по файлу, содержащему их. Для визуализации функций в соответствии со структурой вызова используется ракурс дерева вызовов.

Отчет функции MATLAB доступен только для чтения. Чтобы изменить функцию, выберите имя функции на панели Источник MATLAB (MATLAB Source) и щелкните Править (Edit) в MATLAB (MATLAB).

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

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

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

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

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

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

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

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

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

Просмотр переменных MATLAB

Для просмотра информации о переменных для выбранной функции MATLAB на нижней панели отчета откройте вкладку Переменные.

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

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

  • Свойства типов с фиксированной точкой

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

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

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

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

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

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

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

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

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

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

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

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

  1. Доступ к MATLABFunctionConfiguration объект для функционального блока MATLAB.

    config = get_param('call_stats_block1/MATLAB Function', ...
        'MATLABFunctionConfiguration');
  2. Создать MATLABFunctionReport объект для функционального блока MATLAB.

    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.

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

  • В отчете не указана информация о мертвом коде.

См. также

| | | |

Связанные темы