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 de C++ MEX

Crear funciones de MATLAB® de alto rendimiento implementadas en C++ moderno

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.

Clases de C++

matlab::mex::FunctionBase class for C++ MEX functions
matlab::mex::ArgumentListContainer for inputs and outputs from C++ MEX functions

Ejecución fuera de proceso

mexhostCreate host process for C++ MEX function
fevalEvaluate C++ MEX function in MEX host process
matlab.mex.MexHostOut-of-process host for C++ MEX function execution

Temas

Comenzar a crear funciones de C++ MEX

Funciones MEX de 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++.

Configurar y crear archivos MEX

Compilar programas 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.

C++ MEX API

Use las características de C++ 11 y la API del motor de C++ para implementar funciones MEX.

Diseño de funciones de C++ 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.

Tipos de datos de MATLAB en funciones MEX

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

Llamar a funciones de 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

Separación de procesos y subprocesos

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

Acceso a variables de 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