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