Параметризуйте функцию MATLAB так, чтобы она работала в MATLAB или в сгенерированном коде. Когда функция запускается в MATLAB, она вызывает функцию MATLAB myabsval
. Сгенерированный код, однако, вызывает библиотечную функцию C myabsval
.
Запишите функции MATLAB myabsval
.
Сгенерируйте статическую библиотеку C для myabsval
, с помощью опции -args
, чтобы задать размер, введите, и сложность входного параметра.
Функция
codegen
создает файл библиотеки
myabsval.lib
и заголовочный файл
myabsval.h
в папке
\codegen\lib\myabsval
. (Расширение файла библиотеки может измениться в зависимости от вашей платформы.) Это генерирует функции
myabsval_initialize
и
myabsval_terminate
в той же папке.
Запишите функцию MATLAB, чтобы вызвать сгенерированную библиотечную функцию C с помощью coder.ceval
.
Сгенерируйте MEX-функцию callmyabsval_mex
. Обеспечьте сгенерированный файл библиотеки в командной строке.
Вместо того, чтобы обеспечивать библиотеку в командной строке, можно использовать coder.updateBuildInfo
, чтобы задать библиотеку в функции. Используйте эту опцию, чтобы предварительно сконфигурировать сборку. Добавьте эту строку к блоку else
:
Запустите MEX-функцию callmyabsval_mex
, который вызывает библиотечную функцию myabsval
.
Вызовите функцию MATLAB callmyabsval
.
Функция
callmyabsval
показывает желаемое поведение для выполнения в MATLAB и в генерации кода.