Точка входа в функцию C/C + + MEX, созданную с помощью C Matrix API
#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,...)
где ...
обозначает больше элементов того же формата. The a,b,c...
являются левыми выходными аргументами и d,e,f...
являются правыми входными параметрами. Аргументы nlhs
и nrhs
содержит количество аргументов на левой и правой сторонах, соответственно. prhs
является массивом mxArray
указатели, длина которых nrhs
. plhs
- массив, длина которого nlhs
, где ваша функция должна задать указатели на выход mxArray
с.
Примечание
Можно вернуть выход значение, даже если nlhs = 0
, что соответствует возвращению результата в ans
переменная.
Чтобы экспериментировать с передачей входных параметров, создайте mexfunction.c
пример, следуя инструкциям в Таблицах MEX-функции Source Кода Примеров.
См. эти примеры в
:matlabroot
/ extern/examples/mex