La traduction de cette page n'est pas à jour. Cliquez ici pour voir la dernière version en anglais.
Écrire des fonctions C++ appelables depuis MATLAB (fichiers MEX)
Utilisez l’API MEX C++ pour créer des fonctions MATLAB qui offrent l’efficacité des programmes C++ et peuvent accéder à des fonctions et librairies externes depuis MATLAB. L’API MEX C++ propose les fonctionnalités suivantes :
Utilise les fonctionnalités de programmation en C++ moderne et de conception orientée objet.
Appelle les fonctions MATLAB à partir de la fonction MEX.
S’intègre facilement à MATLAB en obtenant les entrées de MATLAB et en lui renvoyant les résultats.
Supporte les types de données MATLAB et la sémantique copy-on-write.
Écrit des fonctions MEX multithreadées thread-safe.
Exécute des fonctions MEX C++ hors processus.
Remarque
Les fonctions des API C++ MATLAB utilisent la classe matlab::data::Array
définie dans MATLAB Data API pour C++. Si vos fonctions MEX doivent s’exécuter dans MATLAB R2017b ou version antérieure ou si vous préférez le langage C, utilisez C Matrix API qui fonctionne avec la structure de données mxArray
. Pour plus d’informations, consultez Écrire des fonctions C appelables depuis MATLAB (fichiers MEX).
Rubriques
Créer des fonctions MEX 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.
Configurer et créer des fichiers MEX
- Build C++ MEX Programs
Build MEX applications on different platforms. - 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.
Design des fonctions MEX C++
- 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. - Managing External Resources from MEX Functions
Customize theMexFunction
class to better handle the resources used by your MEX function. - Handling Inputs and Outputs
Check the size and type of inputs and display error messages in MATLAB. - Displaying Output in MATLAB Command Window
MEX functions can display output in the MATLAB command window. - Making async Requests Using mexCallMATLAB
Behavior when calling back into MATLAB with anasync
request likematlab::engine::MATLABEngine::fevalAsync
.
Types de données MATLAB dans les fonctions 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.
Appeler des fonctions 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.
Threads et processus distincts
- 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.
Accéder aux variables 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. - Using MEX Functions for MATLAB Class Methods
You can use MEX functions to implement methods for MATLAB classes.