Точка входа в функцию MEX на языке Фортран
#include "fintrf.h" subroutine mexFunction(nlhs, plhs, nrhs, prhs) integer nlhs, nrhs mwPointer plhs(*), prhs(*)
nlhs
Количество ожидаемых выходов mxArray
s
plhs
Массив указателей на ожидаемый выход mxArray
s
nrhs
Количество входа mxArray
s
prhs
Массив указателей на вход mxArray
s. Не изменять никакие prhs
значения в файле MEX. Изменение данных в этих mxArray
только для чтенияs может привести к нежелательным побочным эффектам.
mexFunction
не является стандартной программой, которую вы вызываете. Скорее, mexFunction
- имя стандартной подпрограммы шлюза в Фортране, которое требуется каждой MEX-функции. Для получения дополнительной информации смотрите Компоненты файла 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
переменная.