Main Content

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 MEX File

la rutina mexFunction Gateway

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 de la función en el código fuente.main

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

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

Parámetros requeridos

La firma es:mexFunction

void mexFunction(     int nlhs, mxArray *plhs[],     int nrhs, const mxArray *prhs[]) 

Coloque esta función después de la rutina de cálculo y de las demás funciones del 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.prhsplhsmxArray *MATLAB Son vectores que contienen punteros a los argumentos del archivo MEX. La palabra clave, que modifica, significa que el archivo MEX no modifica los argumentos de entrada.constprhs

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. Para copiar una matriz de entrada en una variable definida localmente, llame a la función para realizar una copia de la matriz de entrada.myDatamxDuplicateArray Por ejemplo:

mxArray *myData = mxCreateStructMatrix(1,1,nfields,fnames); mxSetField(myData,0,"myFieldName",mxDuplicateArray(prhs[0])); 

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 funciones, consulte la categoría API de Matrix,.

La función es una forma de uso general para probar un.mxIsClassmxArray Por ejemplo, supongamos que el segundo argumento de entrada (identificado por) debe ser una matriz completa de números reales.prhs[1] Para comprobar esta condición, utilice las siguientes sentencias.

if(mxIsSparse(prhs[1]) ||     mxIsComplex(prhs[1]) ||     mxIsClass(prhs[1],"char")) {       mexErrMsgIdAndTxt("MyToolbox:myfnc:nrhs",           "input2 must be full matrix of real values."); } 

Este ejemplo no es una comprobación exhaustiva. También puede probar estructuras, matrices de celdas, identificadores de función y objetos.MATLAB

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 Use el código como contenedor para validar los parámetros de entrada y convertirlos en los tipos requeridos por la rutina computacional.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

| | | | |

Temas relacionados