Функция точки входа является функцией MATLAB® верхнего уровня, от которой вы генерируете код. Если ваша функция точки входа имеет входные параметры, необходимо задать свойства входных параметров сгенерировать MEX-функцию. В этом случае сгенерированная MEX-функция работает только с подписью функции точки входа, которую вы задаете во время генерации кода.
Если ваша функция точки входа поддерживает несколько подписей, можно сгенерировать одну MEX-функцию вместо того, чтобы генерировать отдельную MEX-функцию для каждой подписи. Сгенерированная MEX-функция работает с несколькими подписями, обеспеченными во время генерации кода.
При помощи функциональности мультиподписи MEX вы можете:
Сгенерируйте одну MEX-функцию, которая поддерживает несколько подписей, которые вы задаете в функции точки входа.
Уменьшайте издержки, вовлеченные в генерацию и использование отдельных MEX-функций для каждой подписи вашей функции точки входа.
Достигните подобного функции MATLAB поведения в сгенерированной MEX-функции.
Чтобы сгенерировать MEX-функцию мультиподписи, рассмотрите этот функциональный myAdd
:
function y = myAdd(a,b) %#codegen y = a+b; end
myAdd
это работает с тремя различными типами данных: double
int8
, и vector of doubles
. Задайте эти три аргумента как: {1,2}
, {int8(2), int8(3)}
, и {1:10, 1:10}
. Сгенерировать код для myAdd
функция, в командной строке MATLAB, запускает это codegen
команда:
codegen -config:mex myAdd.m -args {1,2} -args {int8(2),int8(3)} -args {1:10,1:10} -report
myAdd_mex
для подписей, заданных в codegen
команда.В командной строке вызовите сгенерированную MEX-функцию myAdd_mex
. Убедитесь, что значения вы передаете myAdd_mex
совпадайте с входными свойствами, которые вы задали в codegen
команда.
myAdd_mex(3,4)
ans = 7
myAdd_mex(int8(5),int8(6))
ans = int8 11
myAdd_mex(1:10,2:11)
ans = 3 5 7 9 11 13 15 17 19 21
Выполнение функции MATLAB myAdd
с этими входными значениями производит тот же выход. Эти тесты проверяют тот myAdd
и myAdd_mex
имейте то же поведение.
Генерация мультиподписи MEX не поддерживает:
Несколько MEX-функция точки входа.
fiaccel
(Fixed-Point Designer)
-float2fixed
настройка.
Определение входных параметров программно. Для получения дополнительной информации смотрите, Задают Входные свойства Программно в файле MATLAB.