Точка входа к функции MEX C/C++ создается с Матричным API C
#include "mex.h" void mexFunction(int nlhs, mxArray *plhs[], int nrhs, const mxArray *prhs[])
Чтобы записать MEX-функции, использующие современные функции C++ и MATLAB Data API, см. Приложения C++ MEX.
mexFunction
не стандартная программа, которую вы вызываете. Скорее mexFunction
имя функции шлюза в C, которого требует каждая MEX-функция. Когда вы вызываете MEX-функцию, MATLAB® находит и загружает соответствующую MEX-функцию того же имени. MATLAB затем ищет символ под названием mexFunction
в MEX-функции. Если это находит один, это вызывает MEX-функцию с помощью адреса mexFunction
символ. MATLAB отображает сообщение об ошибке, если он не может найти стандартную программу под названием mexFunction
в MEX-функции.
Когда вы вызываете MEX-функцию, MATLAB автоматически отбирает nlhs
, plhs
, nrhs
, и prhs
с аргументами вызова. В синтаксисе языка MATLAB функции имеют общую форму:
[a,b,c,...] = fun(d,e,f,...)
где ...
обозначает больше элементов того же формата. a,b,c...
выходные аргументы левой стороны и d,e,f...
входные параметры правой стороны. Аргументы nlhs
и nrhs
содержите количество левой стороны и аргументов правой стороны, соответственно. prhs
массив mxArray
указатели, длиной которых является nrhs
. plhs
массив, длиной которого является nlhs
, где ваша функция должна установить указатели для выхода mxArray
s.
Возможно возвратить выходное значение даже если nlhs = 0
, который соответствует возвращению результата в ans
переменная.
Чтобы экспериментировать с передачей входных параметров, создайте mexfunction.c
пример, следуя инструкциям в Таблицах Примеров Исходного кода MEX-функции.
Смотрите эти примеры в
:matlabroot
/extern/examples/mex