Предположим свой файл MEX myFunction имеет два входных параметра и один выходной аргумент. Синтаксисом MATLAB® является [X] = myFunction(Y, Z). Вызывать myFunction из MATLAB введите:
X = myFunction(Y, Z);
Интерпретатор MATLAB вызывает mexFunction, стандартная программа шлюза к myFunction, со следующими аргументами:

Вашим входом является prhs, двухэлементный массив (nrhs = 2). Первый элемент является указателем на mxArray названный Y и второй элемент является указателем на mxArray названный Z.
Вашим выходом является plhs, массив с одним элементом (nlhs = 1) где одним элементом является null указатель. Параметр plhs точки ни в чем, потому что выход X не создается, пока стандартная подпрограмма не выполняется.
Стандартная программа шлюза создает выходной массив и устанавливает указатель на него в plhs[0]. Если стандартная программа не присваивает значение plhs[0] но вы присваиваете выходное значение функции, когда вы вызываете ее, MATLAB генерирует ошибку.
Возможно возвратить выходное значение даже если nlhs = 0, который соответствует возврату результата в ans переменная.
Следующая схема Цикла MEX показывает, как входные параметры вводят файл MEX, что функционирует, стандартная программа шлюза выполняет, и как выходные параметры возвращаются к MATLAB.
В этом примере, синтаксисе файла MEX func [C, D] = func(A,B). В фигуре, вызове func говорит MATLAB передавать переменные A и B к вашему файлу MEX. C и D оставлены неприсвоенными.
Стандартная программа шлюза использует mxCreate* функции, чтобы создать массивы MATLAB для ваших выходных аргументов. Это устанавливает plhs[0] и plhs[1] к указателям на недавно созданные массивы MATLAB. Это использует mxGet* функции, чтобы извлечь ваши данные из ваших входных параметров prhs[0] и prhs[1]. Наконец, это вызывает вашу вычислительную процедуру, передавая указатели входных и выходных данных как параметры функции.
MATLAB присваивает plhs[0] toc и plhs[1] к D.
Цикл Фортрана MEX
