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 theMexFunction
class 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 anasync
request likematlab::engine::MATLABEngine::fevalAsync
.
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.