Пакет: coder
Управляйте генерацией кода из защищенных файлов MATLAB
coder.allowpcode('plain')
coder.allowpcode('plain')
позволяет вам сгенерировать защищенный MATLAB® код (P-код), который можно затем скомпилировать в оптимизированные MEX-функции или встроенный код C/C + +. Эта функция не запутывает сгенерированные MEX-функции или встроенный код C/C + +.
С помощью этой возможности можно распределить алгоритмы как защищенные P-файлы, которые обеспечивают оптимизацию генерации кода.
Вызовите эту функцию в функции верхнего уровня перед операторами control-flow, такими как if
, while
, switch
, и вызовы функций.
Функции MATLAB могут вызывать P-код. Когда .m
и .p
версии файла существуют в той же папке, приоритет имеет P-файл.
coder.allowpcode
игнорируется вне генерации кода.
Сгенерируйте оптимизированный встраиваемый код из защищенного кода MATLAB:
Напишите функцию p_abs
который возвращает абсолютное значение своего входа:
function out = p_abs(in) %#codegen % The directive %#codegen indicates that the function % is intended for code generation coder.allowpcode('plain'); out = abs(in);
Сгенерируйте защищенный P-код. В подсказке MATLAB введите:
pcode p_abs
p_abs.p
, появляется в текущей папке.Сгенерируйте MEX-функцию для p_abs.p
, с использованием -args
опция для определения размера, класса и сложности входного параметра (требует лицензии MATLAB Coder™). В подсказке MATLAB введите:
codegen p_abs -args { int32(0) }
codegen
генерирует MEX-функцию в текущей папке.Сгенерируйте встраиваемый код С для p_abs.p
(требуется лицензия MATLAB Coder). В подсказке MATLAB введите:
codegen p_abs -config:lib -args { int32(0) };
codegen
генерирует код библиотеки C в codegen\lib\p_abs
папка.