mexFunction Подпрограмма шлюзаПодпрограмма шлюза является точкой входа в файл MEX. Именно через эту подпрограмму MATLAB ® получает доступ к остальным подпрограммам в файлах MEX. Имя подпрограммы шлюза: mexFunction. Он занимает место основной программы в исходном коде.
Имя исходного файла, содержащего mexFunction имя файла MEX и, следовательно, имя функции, вызываемой в MATLAB. Назовите исходный файл Fortran в верхнем регистре .F расширение файла.
Расширение двоичного файла MEX зависит от платформы. Вы находите расширение файла с помощью mexext , которая возвращает значение для текущего компьютера.
.f и .F ФайлыЧтобы убедиться, что ваш файл Fortran MEX не зависит от платформы, используйте верхний регистр .F расширение файла.
Компиляторы Fortran предполагают, что исходные файлы используют нижний регистр .f расширение файла было предварительно обработано. На большинстве платформ mex убедитесь, что файл предварительно обработан независимо от расширения файла. Однако на
платформах Apple Macintosh, mex невозможно принудительно выполнить предварительную обработку.
Подпись Фортрана для mexfunction является:
subroutine mexFunction(nlhs, plhs, nrhs, prhs)
integer nlhs, nrhs
mwpointer plhs(*), prhs(*)
Поместите эту подпрограмму после подпрограммы вычислений и любых других подпрограмм в исходный файл.
В следующей таблице описаны параметры для mexFunction.
| Параметр | Описание |
|---|---|
prhs | Массив аргументов правого ввода. |
plhs | Массив левосторонних выходных аргументов. |
nrhs | Количество аргументов правой стороны или размер prhs массив. |
nlhs | Количество левых аргументов или размер plhs массив. |
Объявить prhs и plhs как тип mwPointer, что означает, что они указывают на массивы MATLAB. Они представляют собой векторы, содержащие указатели на аргументы файла MEX.
Вы можете придумать название prhs как представляющие «параметры, правая сторона», то есть входные параметры. Аналогично, plhs представляет параметры «parameters, left side» или выходные параметры.
Входные параметры (найдены в prhs массив) доступны только для чтения; не изменяйте их в файле MEX. Изменение данных во входном параметре может привести к нежелательным побочным эффектам.
Также необходимо соблюдать осторожность при использовании входного параметра для создания выходных данных или любых данных, используемых локально в файле MEX. Если требуется скопировать входной массив в выходной массив, например, plhs(1), вызовите mxDuplicateArray функция для создания копии входного массива. Например:
plhs(1) = mxDuplicateArray(prhs(1))
Дополнительные сведения см. в разделе Устранение неполадок Неверное построение ячейки или структуры mxArray.
Список функций для проверки входных данных подпрограмм см. в разделе Категория библиотеки матриц «Проверка данных Fortran». mxIsClass функция является универсальным способом тестирования mxArray.
Вычислительная программа содержит код для выполнения необходимых вычислений, реализованный в двоичном файле MEX. Хотя это и не требуется, рассмотрите возможность записи подпрограммы шлюза. mexFunction, чтобы вызвать вычислительную подпрограмму. Для проверки входных параметров и их преобразования в типы, требуемые программой вычислений, используйте mexFunction код как обертка.
При написании отдельных шлюзовых и вычислительных подпрограмм их можно объединить в один исходный файл или в отдельные файлы. При использовании отдельных файлов файл, содержащий mexFunction должен быть первым исходным файлом, перечисленным в mex команда.
mexext | mexFunction | mwPointer | mxDuplicateArray | mxIsClass