Точка входа к 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,...)
где ...
обозначает больше элементов того же формата. a,b,c...
является выходными аргументами левой стороны, и d,e,f...
является входными параметрами правой стороны. Аргументы nlhs
и nrhs
содержат количество левой стороны и аргументов правой стороны, соответственно. prhs
является массивом указателей mxArray
, длиной которых является nrhs
. plhs
является массивом, длиной которого является nlhs
, где ваша функция должна установить указатели для вывода mxArray
s.
Возможно возвратить выходное значение, даже если nlhs = 0
, который соответствует возврату результата в переменной ans
.