Esta página aún no se ha traducido para esta versión. Puede ver la versión más reciente de esta página en inglés.

Componentes de Fortran MEX File

Rutina de pasarelamexFunction

El es el punto de entrada al archivo MEX.rutina de pasarela Es a través de esta rutina que accede al resto de las rutinas en sus archivos MEX.MATLAB® El nombre de la rutina de pasarela es.mexFunction Toma el lugar del programa principal en el código fuente.

Nombrar el archivo MEX

El nombre del archivo de origen que contiene es el nombre de su archivo MEX y, por lo tanto, el nombre de la función que llama.mexFunctionMATLAB Nombra tu archivo de origen Fortran con una extensión de archivo en mayúsculas..F

La extensión de archivo del archivo MEX binario es dependiente de la plataforma. Encontrará la extensión de archivo mediante la función, que devuelve el valor de la máquina actual.mexext

Diferencia entre y archivos.f.F

Para asegurarse de que su archivo Fortran MEX es independiente de la plataforma, utilice una extensión de archivo en mayúsculas..F

Los compiladores de Fortran asumen que los archivos de origen que utilizan una extensión de archivo en minúsculas se han preprocesado..f En la mayoría de las plataformas, se asegura de que el archivo se preprocesa independientemente de la extensión del archivo.mex Sin embargo, en Apple Macintosh plataformas, no puede forzar el preprocesamiento.mex

Parámetros requeridos

La firma Fortran para es:mexfunction

      subroutine mexFunction(nlhs, plhs, nrhs, prhs)       integer nlhs, nrhs       mwpointer plhs(*), prhs(*) 

Coloque esta subrutina después de su rutina de cálculo y cualquier otra subrutinas en el archivo de origen.

En la tabla siguiente se describen los parámetros para.mexFunction

ParámetroDescripción
prhsMatriz de argumentos de entrada del lado derecho.
plhsMatriz de argumentos de salida del lado izquierdo.
nrhsNúmero de argumentos del lado derecho o del tamaño de la matriz.prhs
nlhsNúmero de argumentos del lado izquierdo o del tamaño de la matriz.plhs

Declare y como tipo, lo que significa que señalan a las matrices.prhsplhsmwPointerMATLAB Son vectores que contienen punteros a los argumentos del archivo MEX.

Puede pensar en el nombre que representa los "parámetros, lado derecho", es decir, los parámetros de entrada.prhs Del mismo modo, representa los parámetros de "parámetros, lado izquierdo" o de salida.plhs

Administración de parámetros de entrada y salida

Los parámetros de entrada (que se encuentran en la matriz) son de solo lectura; no los modifique en su archivo MEX.prhs Cambiar los datos en un parámetro de entrada puede producir efectos secundarios no deseados.

También debe tener cuidado al usar un parámetro de entrada para crear datos de salida o cualquier dato utilizado localmente en su archivo MEX. Si desea copiar una matriz de entrada en una matriz de salida, por ejemplo, llame a la función para realizar una copia de la matriz de entrada.plhs(1)mxDuplicateArray Por ejemplo:

plhs(1) = mxDuplicateArray(prhs(1)) 

Para obtener más información, consulte el tema de solución de problemas.Construir incorrectamente una celda o estructuramxArray

Validando entradas

Para obtener una lista de funciones para validar las entradas de las subrutinas, consulte la categoría biblioteca de matrices,.Validar datos La función es una forma de uso general para probar un.mxIsClassmxArray

Rutina computacional

Contiene el código para realizar los cálculos que desea implementar en el archivo MEX binario.rutina computacional Aunque no es necesario, considere la posibilidad de escribir la rutina de la puerta de enlace, para llamar a una rutina computacional.mexFunction Para validar los parámetros de entrada y convertirlos en los tipos requeridos por la rutina computacional, utilice el código como contenedor.mexFunction

Si escribe distintas rutinas de puerta de enlace y de cálculo, puede combinarlas en un archivo de origen o en archivos independientes. Si utiliza archivos independientes, el archivo que contiene debe ser el primer archivo de código fuente que aparece en el comando.mexFunctionmex

Consulte también

| | | |