Escribir funciones de C++ que se pueden llamar desde MATLAB (archivos MEX)
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 para C++. Si las funciones MEX deben ejecutarse en la versión R2017b de MATLAB o en versiones 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 Escribir funciones de C que se pueden llamar desde MATLAB (archivos MEX).
Temas
Crear funciones MEX de C++
- C++ MEX Functions
MEX files implement MATLAB functions written in C++. - Create a C++ MEX Source File
How to create a basic C++ MEX function.
Configurar y crear archivos MEX
- Crear programas de C++ MEX
Cree aplicaciones MEX en diferentes plataformas. - Test Your Build Environment
Test your build environment with a predefined C++ MEX file. - C++ MEX API
Use C++11 features and the C++ Engine API to implement MEX functions.
Diseño de funciones de C++ MEX
- Structure of C++ MEX Function
Implement a class that overrides the function call operator()to create a functor object. - Avoid Copies of Arrays in MEX Functions
Techniques to avoid making copies of large arrays to reduce memory usage and improve execution speed. - Manage External Resources from MEX Functions
Customize theMexFunctionclass to better handle the resources used by your MEX function. - Handle Inputs and Outputs
Check the size and type of inputs and display error messages in MATLAB. - Mostrar una salida en la ventana de comandos de MATLAB
Las funciones MEX pueden mostrar una salida en la ventana de comandos de MATLAB. - Make async Requests Using mexCallMATLAB
Behavior when calling back into MATLAB with anasyncrequest likematlab::engine::MATLABEngine::fevalAsync. - Access ArgumentList and MATLAB Engine in User C++ Files
How to compilematlab::mex::ArgumentListoutside of MATLAB and link a shared library that uses MATLAB Engine API to a C++ MEX.
Tipos de datos de MATLAB en funciones MEX
- Data Access in Typed, Cell, and Structure Arrays
Cell and structure arrays let you write to array contents without copying entire array. - Data Types for Passing MEX Function Data
Define the correct data types to pass data between MATLAB and MEX functions.
Llamar a funciones de MATLAB
- Call MATLAB Functions from MEX Functions
Call MATLAB functions, passing arguments from and returning arguments to a MEX function. - Catch Exceptions in MEX Function
Catch exceptions thrown in a MEX function. - Execute MATLAB Statements from MEX Function
Execute MATLAB statements to create variables in the caller's workspace.
Separación de procesos y subprocesos
- Call MATLAB from Separate Threads in MEX Function
MEX functions can call MATLAB from user-created threads using the C++ Engine asynchronous API. - Out-of-Process Execution of C++ MEX Functions
Execute C++ MEX functions in processes that are separate from the MATLAB process.
Acceso a variables de MATLAB
- Set and Get MATLAB Variables from MEX
Put variables into or get variables from the MATLAB base and global workspaces. - MATLAB Objects in MEX Functions
Pass MATLAB objects to MEX functions. - Use MEX Functions for MATLAB Class Methods
You can use MEX functions to implement methods for MATLAB classes.