La traducción de esta página está obsoleta. Haga clic aquí para ver la última versión en inglés.
Utilice la API C++ MEX para crear funciones de MATLAB que proporcionen la eficiencia de los programas de C++ y puedan acceder a las funciones externas y bibliotecas de MATLAB. La API de C++ MEX ofrece las siguientes características:
Utiliza funcionalidades de programación y diseños orientados a los objetos.
Llama a funciones de MATLAB desde la función MEX.
Se integra perfectamente en MATLAB y obtiene entradas de y devuelve resultados a MATLAB.
Admite los tipos de datos y la semántica COW (copiar al escribir) de MATLAB.
Escribe funciones de MEX multisubproceso con subprocesos seguros.
Ejecuta funciones de C++ MEX fuera del proceso.
Nota
Las funciones en las API C++ de MATLAB utilizan la clase matlab::data::Array
que se define en API de datos de MATLAB. Si sus funciones MEX deben ejecutarse en la versión R2017b de MATLAB o anteriores, o si prefiere trabajar en el lenguaje C, utilice API para manipular matrices en C, que funciona con la estructura de datos de mxArray
, en su lugar. Para obtener más información, consulte Llamar a MATLAB desde C.
Los archivos MEX implementan funciones escritas en C++.MATLAB
Cree un archivo de código fuente MEX C++
Aquí es cómo crear una función básica de MEX de C++.
Construye aplicaciones MEX en diferentes plataformas.
Pruebe su entorno de compilación
Pruebe el entorno de compilación con un archivo MEX de C++ predefinido.
Use las características de C++ 11 y la API del motor de C++ para implementar funciones MEX.
Estructura de la función MEX de C++
Implemente una clase que invalide el operador de llamada de función para crear un objeto functor.()
Evite copias de matrices en funciones MEX
Técnicas para evitar hacer copias de matrices grandes para reducir el uso de memoria y mejorar la velocidad de ejecución.
Gestión de recursos externos de funciones MEX
Personalice la clase para manejar mejor los recursos utilizados por su función MEX.MexFunction
Manipulación de entradas y salidas
Compruebe el tamaño y el tipo de entradas y los mensajes de error de visualización en.MATLAB
Visualización de salida en la ventana de comandosMATLAB
Las funciones MEX pueden mostrar la salida en la ventana de comandos.MATLAB Sin embargo, algunos compiladores no admiten el uso de funciones MEX.std::cout
Making async Requests Using mexCallMATLAB
Behavior when calling back into MATLAB with an async
request like matlab::engine::MATLABEngine::fevalAsync
.
Acceso a datos en matrices de tipos, celdas y estructuras
Las matrices de celdas y estructuras le permiten escribir en el contenido de la matriz sin copiar toda la matriz.
Tipos de datos para pasar los datos de la función MEX
Defina los tipos de datos correctos para pasar los datos entre y las funciones MEX.MATLAB
Funciones de llamada de funciones MEXMATLAB
Llamar a funciones, pasar argumentos de y devolver argumentos a una función MEX.MATLAB
Detectar excepciones en la función MEX
Detectar excepciones producidas en una función MEX.
Ejecutar sentencias de la función MEXMATLAB
Ejecutar sentencias para crear variables en el espacio de trabajo del llamador.MATLAB
Llamada de hilos separados en la función MEXMATLAB
Las funciones MEX pueden llamar desde subprocesos creados por el usuario mediante la API asincrónica del motor de C++.MATLAB
Ejecución fuera de proceso de funciones MEX de C++
Ejecutar funciones MEX de C++ en procesos que son independientes del proceso.MATLAB
Establecer y obtener variables de MEXMATLAB
Poner variables en o obtener variables de los espacios de trabajo base y globales.MATLAB
Los objetos en funciones MEXMATLAB
Pasar objetos a funciones MEX.MATLAB
Using MEX Functions for MATLAB Class Methods
You can use MEX functions to implement methods for MATLAB classes.