mexFunction
Функции шлюза Стандартной программыЭтот gateway routine является точкой входа в файл MEX. Именно через эту стандартную программу MATLAB® обращается к остальным стандартным программам в файлах MEX. Имя стандартной программы шлюза: mexFunction
. Он занимает место основной программы в вашем исходном коде.
Имя исходного файла, содержащего mexFunction
- имя файла MEX и, следовательно, имя функции, которую вы вызываете в MATLAB. Назовите исходный файл ФОРТРАН заглавным .F
расширение файла.
Расширение файла двоичного файла MEX зависит от платформы. Вы находите расширение файла используя mexext
функция, которая возвращает значение для текущей машины.
.f
и .F
ФайлыЧтобы убедиться, что ваш файл MEX на языке Фортран является независимым от платформы, используйте верхний регистр .F
расширение файла.
Компиляторы фортран предполагают, что исходные файлы используют строчную .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
представляет «параметры, левая сторона» или выходные параметры.
Входные параметры (найдены в prhs
массив) доступны только для чтения; не изменять их в файле MEX. Изменение данных в параметре входа может привести к нежелательным побочным эффектам.
Вы также должны позаботиться при использовании параметра входа, чтобы создать выход данные или любые данные, используемые локально в вашем файле MEX. Если вы хотите скопировать вход массив в выход массив, для примера plhs(1)
, вызвать mxDuplicateArray
функция для создания копии массива входа. Для примера:
plhs(1) = mxDuplicateArray(prhs(1))
Для получения дополнительной информации см. раздел «Неправильное построение камеры или структуры mxArray».
Список функций для проверки входов в стандартных подпрограммах см. в категории Matrix Library, Validate Fortran Data. mxIsClass
функция является общим способом тестирования mxArray
.
Этот computational routine содержит код для выполнения расчетов, которые вы хотите реализовать в двоичном файле MEX. Хотя это не требуется, рассмотрите запись стандартной программы шлюза, mexFunction
, для вызова вычислительной процедуры. Чтобы подтвердить входные параметры и преобразовать их в типы, требуемые вычислительной процедурой, используйте mexFunction
код как обертка.
Если вы записываете отдельные шлюзы и вычислительные процедуры, можно объединить их в один исходный файл или в отдельные файлы. Если вы используете отдельные файлы, файл, содержащий mexFunction
должен быть первым исходным файлом, перечисленным в mex
команда.
mexext
| mexFunction
| mwPointer
| mxDuplicateArray
| mxIsClass