Определенный MATLAB® функции не поддерживаются для генерации кода. При попытке сгенерировать код для этих неподдерживаемых функций, вы видите это сообщение об ошибке:
The function <function_name> is not supported for code generation.
Это сообщение об ошибке происходит, когда генератор кода не может сгенерировать код для заданной функции. Если вы хотите сгенерировать код для своего проекта, используйте следующие обходные решения в зависимости от своей платформы развертывания.
Чтобы вызвать неподдерживаемую функцию в MEX, объявите функцию как значение внешних параметров в вашем коде MATLAB. Функциональная генерация кода обходов и вместо этого использует движок MATLAB, чтобы выполнить вызов. Эта функциональность доступна только, когда движок MATLAB доступен в MEX-функциях. Определенные функции автоматически отмечены как значение внешних параметров, в то время как другие функции требуют, чтобы вы явным образом вызвали их как внешнюю функцию. Чтобы объявить функцию как внешнюю функцию, использовать coder.extrinsic
. Для получения дополнительной информации смотрите Использование MATLAB Engine, чтобы Выполнить Вызов функции в Сгенерированном коде.
Чтобы сгенерировать автономный код для, проект, который использует неподдерживаемые функции, вручную реализуйте неподдерживаемую функцию как пользовательский код MATLAB, который поддерживается для кода C/C++ или генерации кода.
Чтобы использовать рукописный код C/C++, чтобы реализовать неподдерживаемую функциональность, вызовите этот код из своего кода MATLAB при помощи coder.ceval
. Затем сгенерируйте код для функций MATLAB точки входа, как обычно.
Можно найти сторонний пользовательский код MATLAB или код C/C++ для функции, которой вы требуете.
Перед использованием стороннего пользовательского кода MATLAB сгенерируйте MEX-функцию для кода, чтобы проверить, что это выполняет как ожидалось. Так же со сторонним кодом C/C++, проверьте, что код или библиотека выполняют как ожидалось.
Можно также развернуть код MATLAB в платформу, которая поддерживает MATLAB Compiler™. Код, сгенерированный компилятором, не абсолютно автономен, когда это требует доступа к библиотекам времени выполнения MATLAB. Смотрите Запись Развертываемый код MATLAB (MATLAB Compiler).