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.

Aplicaciones del archivo C MEX

Escribir programas de C que funcionen con la versión R2017b de MATLAB® o anteriores utilizando mxArray

Puede llamar a sus propios programas de C o C++ mediante la línea de comandos de MATLAB como si fueran funciones integradas. Estos programas se conocen como funciones MEX y el nombre de la función es el nombre del archivo MEX. Las funciones MEX no son apropiadas para todas las aplicaciones. MATLAB es un entorno de alta productividad que se especializa en eliminar programación de bajo nivel que requiere mucho tiempo en lenguajes compilados. En general, haga la programación en MATLAB. No utilice funciones MEX a menos que su aplicación lo requiera.

Para crear una función MEX, escriba sus programas usando las API de MATLAB. Las funciones de estas bibliotecas facilitan la transferencia de datos entre las funciones MEX y el área de trabajo. Al elegir una API de MATLAB tenga en cuenta lo siguiente.

  • MathWorks recomienda crear funciones MEX con funciones C++ modernas, como se define en API de datos de MATLAB. Para obtener más información, consulte Aplicaciones de C++ MEX.

  • Si sus funciones MEX deben ejecutarse en la versión R2017b de MATLAB o en anteriores o si prefiere trabajar en el lenguaje C, utilice funciones en API para manipular matrices en C y la API de C MEX. Estas API utilizan la estructura mxArray de MATLAB. Las funciones y los temas de esta páginas están basados en mxArray.

Nota

Seleccione las funciones de la API para manipular matrices en C o la API de datos de MATLAB, no puede mezclar funciones de estas API.

Cree el archivo fuente en un programa ejecutable mediante el uso de la función mex. También puede compartir el archivo MEX con otros usuarios de MATLAB.

Para obtener información acerca de cómo escribir funciones S, consulte la documentación de Simulink®.

Para llamar una función MEX que alguien creó, consulte Funciones de archivos MEX.

Si tiene un programa de C/C++ y desea llamar a funciones de MATLAB desde el programa, entonces utilice una de las API del motor.

Si desea leer y escribir datos de MATLAB desde programas de C/C++, entonces use API C de MATLAB para leer datos de archivos MAT.

Funciones

mexBuild MEX function or engine application
dbmexEnable MEX-file debugging on UNIX platforms

API de C MEX

mexFunctionEntry point to C/C++ MEX function built with C Matrix API
mexFunctionNameName of current MEX function
mexAtExitRegister function to call when MEX function clears or MATLAB terminates
mexCallMATLABCall MATLAB function, user-defined function, or MEX function
mexCallMATLABWithTrapCall MATLAB function, user-defined function, or MEX file and capture error information
mexEvalStringExecute MATLAB command in caller workspace
mexEvalStringWithTrapExecute MATLAB command in caller workspace and capture error information
mexGetVariableCopy of variable from specified workspace
mexGetVariablePtrRead-only pointer to variable from another workspace
mexPutVariableArray from MEX function into specified workspace
mexGetValue of specified graphics property
mexSetSet value of specified graphics property
mexPrintfANSI C PRINTF-style output routine
mexErrMsgIdAndTxtDisplay error message with identifier and return to MATLAB prompt
mexWarnMsgIdAndTxtWarning message with identifier
mexIsLockedDetermine if MEX file is locked
mexLockPrevent clearing MEX file from memory
mexUnlockAllow clearing MEX file from memory
mexMakeArrayPersistentMake array persist after MEX file completes
mexMakeMemoryPersistentMake memory allocated by MATLAB persist after MEX function completes

Temas

Escribir funciones de C MEX

Crear archivo MEX fuente C

En este ejemplo se muestra cómo crear una función MEX de C compiló con la API de matriz de C.

Tablas de la función MEX ejemplos de código fuente

Estas tablas enlazan con el código fuente para ejemplos de funciones MEX.

DatosMATLAB

Usando en archivos MEX.mxArray

Problemas de administración de memoria

Reglas para administrar la memoria.mxArray

Creación de funciones MEX de C++ con API de matriz de C

Problemas de lenguaje C++ a tener en cuenta al crear funciones MEX construidas con la API de matriz de C.

Error Handling

Imprima información de error utilizando la función.mexErrMsgIdAndTxt

Manipulación de e/s de archivo grande

Cómo utilizar la e/s de archivos de 64 bits en su archivo MEX.

Pruebas para la clase derivada más

Cómo excluir subclases de tipos integrados de argumentos de entrada de archivo MEX.

Compruebe su entorno de trabajo

Construir archivo MEX

En este ejemplo se muestra cómo compilar el archivo MEX de ejemplo.timestwo Use este ejemplo para comprobar la configuración de compilación del sistema.

Versiones de la API para manipular matrices en C

Actualice los archivos MEX para usar la API de Interleaved Complex

MATLAB versión 9,4 (R2018a) admite una representación intercalada de números complejos.

Actualice los archivos MEX para usar la API de 64 bits

MATLAB versión 9,2 (R2017a) compila archivos MEX con la API de 64 bits de forma predeterminada.

Actualizar archivos MEX para utilizar objetos gráficos

La versión 8,4 (la versión r2014b) cambia el tipo de datos de los identificadores a los objetos gráficos.MATLABdoubleobject

Compartir archivos MEX

Información de compilación de documento en el archivo MEX

En este ejemplo se muestra cómo documentar el archivo MEX creado en una plataforma mediante un compilador.xtimesyWindows®Microsoft®Visual C++®

Solución de problemas

Errores de compilación

Obtener ayuda cuando MEX falla

Para ayudar a diagnosticar la creación de compilador y errores de compilación, llame a la función con verbose Option-v.mex

Compilar archivo MEX falla

Lo que hay que hacer al compilar un archivo MEX falla.

Solución de problemas de incompatibilidades de MEX API

Más información para advertencias y mensajes de error.

Solución de problemas y limitaciones compilar archivos MEX C/C++ con-W64MinGW

Solución de problemas de archivos MEX construidos con el compilador MinGW-W64.

Símbolo sin resolver o no definidomexFunction

Cada archivo MEX necesita una.mexFunction

Errores de tiempo de ejecución

Errores de archivo MEX no válidos

Qué hacer cuando se obtiene un error de archivo MEX no válido.

Compatibilidad de versiones

Para obtener mejores resultados, ejecute archivos MEX creados con su versión.MATLAB

Compatibilidad de plataforma

Si obtiene un archivo MEX binario de otra fuente, asegúrese de que el archivo se compiló para la misma plataforma en la que desea ejecutarlo.

MEX API no es seguro para subprocesos

No llame a una sola sesión de en subprocesos independientes de un archivo MEX.MATLAB Las API de MEX y Matrix Library no son multiproceso.

Error de segmentación de archivos MEX

Qué hacer cuando un archivo MEX causa una infracción o aserción de segmentación.

MEX archivo genera resultados incorrectos

Qué hacer cuando su MEX genera respuestas incorrectas.

Depuración

Debug on Microsoft Windows Platforms

Suggestions for debugging with Microsoft Visual Studio®.

Depurar en Mac Plataformas

Este ejemplo muestra cómo depurar un archivo MEX en Mac Plataformas.

Depurar en plataformasLinux

Este ejemplo muestra cómo depurar un archivo MEX en plataformas.Linux®