При записи MATLAB® код, который вы хотите преобразовать в эффективный, автономный код C/C + +, необходимо учитывать следующее:
Типы данных
C и C++ используют статическое типирование. Чтобы определить типы ваших переменных перед использованием, MATLAB Coder™ требует полного назначения каждой переменной.
Калибровка массива
Массивы и матрицы переменного размера поддерживаются для генерации кода. Можно задать входы, выходы и локальные переменные в функциях MATLAB, чтобы представлять данные, которые изменяются в размере во время выполнения.
Память
Можно выбрать, использует ли сгенерированный код статическое или динамическое выделение памяти.
С динамическим выделением памяти вы потенциально используете меньше памяти за счет времени, чтобы управлять памятью. Со статической памятью вы получаете лучшую скорость, но с более высоким использованием памяти. Большинство кода MATLAB использует в своих интересах динамические функции калибровки в MATLAB, поэтому динамическое выделение памяти обычно позволяет вам сгенерировать код из существующего кода MATLAB, не сильно изменяя его. Динамическое выделение памяти также позволяет некоторым программам компилироваться, даже когда верхние границы не могут быть найдены.
Статическое выделение уменьшает объем памяти сгенерированного кода, и поэтому подходит для приложений, где имеется ограниченное количество доступной памяти, таких как встраиваемые приложения.
Скорость
Поскольку встраиваемые приложения должны запускаться в режиме реального времени, код должен быть достаточно быстрым, чтобы соответствовать необходимой тактовой частоте.
Для улучшения скорости сгенерированного кода:
Выберите подходящий компилятор C/C + +. Не используйте компилятор по умолчанию, который MathWorks® поставляется с MATLAB для Windows® 64-разрядные платформы.
Рассмотрите возможность отключения проверок во время выполнения.
По умолчанию для безопасности код, сгенерированный для вашего кода MATLAB, содержит проверки целостности памяти и проверки быстродействия. Как правило, эти проверки приводят к более сгенерированному коду и более медленной симуляции. Отключение проверок во время выполнения обычно приводит к оптимизации сгенерированного кода и более быстрой симуляции. Отключите эти проверки только в том случае, если проверено, что ограничения массивов и проверка размерностей не требуются.