Функциональное определение

Задайте и вызовите функции для генерации кода

Блоки

MATLAB FunctionВключайте код MATLAB в модели, которые генерируют встраиваемый код С
MATLAB SystemВключайте Системный объект в модель

Функции

coder.extrinsicОбъявите функцию как значение внешних параметров и выполните его в MATLAB
coder.ignoreSizeПрепятствуйте тому, чтобы генератор кода создал функциональные специализации для выражений постоянного размера
coder.ignoreConstПредотвратите использование постоянного значения выражения для функциональных специализаций
coder.unrollРазверните for- цикл путем создания копии тела цикла для каждой итерации цикла

Темы

Директива компиляции %#codegen

Укажите, что функция MATLAB® предназначается для генерации кода.

Генерация кода для списков аргументов переменной длины

Сгенерируйте код для varargin и varargout.

Генерация кода для рекурсивных функций

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

Обеспечьте генератор кода, чтобы использовать рекурсию во время выполнения

Перепишите свой код MATLAB так, чтобы генератор кода использовал рекурсию во время выполнения вместо рекурсии времени компиляции.

Генерация кода для анонимных функций

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

Генерация кода для вложенных функций

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

Разрешение вызовов функции для генерации кода

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

Разрешение типов файлов на пути генерации кода

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

Используйте MATLAB Engine, чтобы выполнить вызов функции в сгенерированном коде

Если функция не поддерживается для генерации кода, объявите, что он как extrinsic выполняется в MATLAB.

Поиск и устранение проблем

Непостоянный индекс в varargin или varargout в цикле for

Обеспечьте развертывание цикла, когда генератор кода не сможет определить значение индекса в varargin или varargout.

Избегайте дублирующихся функций в сгенерированном коде

Уменьшайте вхождение дублирующихся функций в сгенерированном коде.

Выходная переменная должна быть присвоена перед рекурсивным вызовом во время выполнения

Диагностируйте присвоение выходной переменной для рекурсии во время выполнения.

Достигнутый предел рекурсии времени компиляции

Диагностируйте предельную ошибку рекурсии времени компиляции.