MATLAB ® Coder™ создает отчет по генерации кода, который помогает:
Выполните отладку генерации кода и убедитесь, что код MATLAB подходит для генерации кода.
Просмотр созданного кода C/C + +.
Трассировка между исходным кодом MATLAB и сгенерированным кодом C/C + +.
Узнайте, как генератор кода определяет и распространяет информацию о типе переменных и выражений в коде MATLAB.
Определите потенциальные проблемы в созданном коде.
Получите доступ к дополнительным отчетам с помощью Embedded Coder ®.
При включении генерации отчета или возникновении ошибки генератор кода создает отчет о генерации кода. Для управления созданием и открытием отчета о создании кода используйте настройки приложения, codegen или свойства объекта конфигурации.
В приложении Кодер MATLAB:
Чтобы создать отчет, установите для параметра Всегда создавать отчет значение Yes.
Если вы хотите, чтобы приложение открыло отчет для вас, установите параметр Автоматически запускать отчет, если он создан в Yes.
В командной строке используйте codegen опции:
Для создания отчета используйте -report вариант.
Для создания и открытия отчета используйте -launchreport вариант.
Также можно использовать свойства объекта конфигурации:
Чтобы создать отчет, установите GenerateReport кому true.
Если хотите codegen чтобы открыть отчет, установите LaunchReport кому true.
Отчет о создании кода имеет имя report.mldatx. Он расположен в html подпапка выходной папки генерации кода. При наличии MATLAB R2018a или более поздней версии можно открыть report.mldatx двойным щелчком на файле.
Просмотр сообщений об ошибках генерации кода, предупреждений и информации на вкладке «Все сообщения». Чтобы выделить исходный код для ошибки или предупреждения, щелкните сообщение. Рекомендуется обращаться к первому сообщению, поскольку последующие ошибки и предупреждения могут быть связаны с первым сообщением.
Просмотр ошибок компиляции и связывания, а также предупреждений на вкладке Журналы построения. Генератор кода обнаруживает предупреждения компиляции только для выходных данных MEX или при использовании поддерживаемого компилятора для других типов выходных данных. См. раздел Поддерживаемые компиляторы.
В отчете перечислены исходные функции MATLAB и созданные файлы. На панели Источник MATLAB (MATLAB Source) представление Список функций (Function List) организует функции в соответствии с содержимым файла. Для визуализации функций в соответствии со структурой вызова используется ракурс дерева вызовов.
Чтобы просмотреть функцию на панели кода отчета, щелкните ее в списке. При щелчке на функции открывается файл, содержащий эту функцию. Чтобы изменить выбранный файл в редакторе MATLAB, нажмите кнопку Изменить в MATLAB или щелкните номер строки на панели кода.
Если включен встроенный кодер и отчет создается с возможностью отслеживания, чтобы просмотреть исходный код и созданный код рядом друг с другом на панели кода, щелкните Трассировка кода. Между исходным кодом и сгенерированным кодом можно выполнять интерактивную трассировку. См. раздел Интерактивная трассировка между кодом MATLAB и сгенерированным кодом C/C + + (встроенный кодер).
Если требуется переместить созданные файлы для автономного кода (библиотеки или исполняемого файла) в другую среду разработки, их можно поместить в zip-файл, щелкнув Код пакета (Package Code).
Когда функция вызывается с различными типами входных данных или класс использует различные типы для своих свойств, генератор кода производит специализации. На панели MATLAB Source пронумерованные функции (или классы) указывают специализации. Например:
![]()
При преобразовании кода MATLAB с плавающей запятой в код MATLAB с фиксированной запятой и последующем создании кода C/C + + с фиксированной запятой на панели «Источник MATLAB» отображаются исходные функции MATLAB и функции MATLAB с фиксированной запятой. Например:

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

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

Знание значения постоянного аргумента помогает понять созданные сигнатуры функций. Это также помогает определить, когда при создании кода создаются специализации функций для различных значений постоянных аргументов.
Чтобы экспортировать значение в переменную в рабочей области, щелкните значок Экспорт (Export).![]()
На вкладке Переменные (Variables) представлена информация о переменных для выбранной функции MATLAB. Чтобы выбрать функцию, щелкните ее на панели Источник MATLAB (MATLAB Source).
Таблица переменных показывает:
Класс, размер и сложность
Свойства типов с фиксированной точкой
Является ли массив разреженным
Макет массива
Эта информация помогает отладить ошибки, такие как ошибки несоответствия типов, и понять, как генератор кода распространяет типы и представляет данные в сгенерированном коде.
В этой таблице описываются символы, значки и другие индикаторы в таблице переменных.
| Столбец в таблице переменных | Индикатор | Описание |
|---|---|---|
| Имя | расширитель | Переменная имеет элементы или свойства, которые можно увидеть, щелкнув расширитель. |
| Имя | {:} | Гетерогенный массив ячеек (все элементы имеют одинаковые свойства). |
| Имя | {n} | n-й элемент гетерогенного клеточного массива. |
| Класс | v > n | v повторно используется с другим классом, размером и сложностью. Число n определяет повторное использование с уникальным набором свойств. При приостановке переименованной переменной отчет выделяет только экземпляры этой переменной, которые имеют общий класс, размер и сложность. См. раздел Повторное использование одной и той же переменной с различными свойствами. |
| Размер | :n | Массив переменного размера с верхней границей n. |
| Размер | :? | Массив переменного размера без верхней границы. |
| Размер | курсив | Массив переменного размера, размеры которого не изменяют размер во время выполнения. |
| Класс | sparse префикс | Разреженный массив. |
| Класс | complex префикс | Комплексное число. |
| Класс |
| Тип с фиксированной точкой. Чтобы просмотреть свойства фиксированной точки, щелкните значок. |
В этой таблице описываются значки, указывающие макет массива в таблице переменных.
| Значок | Описание |
|---|---|
| Макет основного массива строк. |
| Макет основного массива столбцов. |
| Смесь макетов «строка-основная» и «столбец-основная». |
Можно выполнить трассировку между исходным кодом MATLAB и сгенерированным кодом C/C + + одним из следующих способов:
Интерактивная визуализация сопоставления между кодом MATLAB и сгенерированным кодом. Чтобы получить доступ к интерактивной трассировке, в отчете щелкните Код трассировки.
Кнопка «Код трассировки» доступна только при наличии встроенного кодера и возможности отслеживания кода при создании кода. См. раздел Интерактивная трассировка между кодом MATLAB и сгенерированным кодом C/C + + (встроенный кодер).
Включить исходный код в качестве комментариев в созданный код C/C + +.
В комментарии генератор кода создает тег, который помогает найти соответствующий исходный код MATLAB. При наличии встроенного кодера тег является ссылкой на исходный код. См. раздел Трассировка сгенерированного кода C/C + + к исходному коду MATLAB.
Генератор кода может обнаруживать и сообщать о проблемах, которые потенциально могут возникнуть в сгенерированном коде. Просмотрите сообщения на вкладке Анализ кода. К числу вопросов относятся:
Потенциальные различия между поведением сгенерированного кода и поведением кода MATLAB. Отчет включает сообщения о потенциальных различиях, только если включена отчетность о потенциальных различиях. См. раздел Отчеты о потенциальных различиях.
Потенциальные проблемы типа данных в созданном коде, такие как операции с одинарной и двойной точностью.
Отчет включает потенциальные проблемы с типами данных, только если у вас есть встроенный кодер и включен отчет о потенциальных проблемах с типами данных. При наличии Designer™ фиксированных точек в отчете также определяются дорогостоящие операции с фиксированными точками. См. раздел Выделение потенциальных проблем с типами данных в отчете (встроенный кодер).
Потенциальные основные проблемы ряда. См. раздел Разработка кода для компоновки основного массива строк.
Проблемы автоматического распараллеливания. См. раздел Автоматический параллелизм для циклов в сгенерированном коде.
Вкладка Сводка может содержать ссылки на следующие дополнительные отчеты:
Отчет о показателях статического кода (требуется встроенный кодер). См. раздел Создание отчета о показателях статического кода для кода, сгенерированного из кода MATLAB (встроенный кодер).
Отчет о замене кода (требуется Embedded Coder). См. раздел Проверка библиотеки замены кода (встроенный кодер).
Отчет о преобразовании с фиксированной точкой (требуется Конструктор с фиксированной точкой). См. раздел Преобразование кода MATLAB в код с фиксированной точкой C.