Contenu principal

Écrire des fonctions C appelables depuis MATLAB (fichiers MEX)

Créer des fonctions C pouvant être appelées depuis MATLAB® R2017b ou version antérieure en utilisant mxArray pour accéder aux variables MATLAB et créer des tableaux à renvoyer à MATLAB

Vous pouvez appeler vos propres programmes C à partir de la ligne de commande MATLAB comme s’il s’agissait de fonctions prédéfinies. Ces programmes sont appelés fonctions MEX. Le nom de la fonction est le nom du fichier MEX. Les fonctions MEX ne conviennent pas à toutes les applications. MATLAB est un environnement à haute productivité spécialement conçu pour éliminer les tâches chronophages de programmation de bas niveau dans les langages compilés. De manière générale, la programmation doit s’effectuer dans MATLAB. Utilisez des fonctions MEX seulement si elles sont indispensables à votre application.

Pour créer une fonction MEX, écrivez votre programme avec les API MATLAB. Les fonctions de ces bibliothèques facilitent le transfert de données entre les fonctions MEX et l’espace de travail. Pour choisir une API MATLAB, tenez compte des points suivants :

Remarque

Choisissez soit les fonctions de C Matrix API, soit celles de MATLAB Data Array API. Vous ne pouvez pas combiner les fonctions de ces API.

Compilez votre fichier source en programme exécutable avec la fonction mex. Vous pouvez également partager le fichier MEX avec d’autres utilisateurs MATLAB.

Pour plus d’informations sur l’écriture de S-functions, consultez votre documentation Simulink®.

Pour appeler une fonction MEX créée par un autre utilisateur, consultez Appeler des fonctions MEX.

Si vous souhaitez appeler des fonctions MATLAB depuis un programme C/C++, utilisez l’une des API Engine. Pour plus d’informations, consultez :

Si vous souhaitez lire et écrire des données MATLAB depuis des programmes C, consultez Écrire des programmes C pour lire les données de fichiers MAT.

Fonctions

mexBuild MEX functions and engine or MAT file applications
dbmexEnable MEX file debugging on UNIX platforms

MEX C API

mexFunctionEntry point to C/C++ MEX function built with C Matrix API
mexFunctionNameName of current MEX function
mexAtExitRegister function to call when MEX function clears or MATLAB terminates
mexCallMATLABCall MATLAB function, user-defined function, or MEX function
mexCallMATLABWithTrapCall MATLAB function, user-defined function, or MEX file and capture error information
mexEvalStringExecute MATLAB command in caller workspace
mexEvalStringWithTrapExecute MATLAB command in caller workspace and capture error information
mexGetVariableCopy of variable from specified workspace
mexGetVariablePtrRead-only pointer to variable from another workspace
mexPutVariableArray from MEX function into specified workspace
mexGetValue of specified graphics property
mexSetSet value of specified graphics property
mexPrintfANSI C PRINTF-style output routine
mexErrMsgIdAndTxtDisplay error message with identifier and return to MATLAB prompt
mexWarnMsgIdAndTxtWarning message with identifier
mexIsLockedDetermine if MEX file is locked
mexLockPrevent clearing MEX file from memory
mexUnlockAllow clearing MEX file from memory
mexMakeArrayPersistentMake array persist after MEX file completes
mexMakeMemoryPersistentMake memory allocated by MATLAB persist after MEX function completes

Rubriques

Écrire des fonctions MEX C

Versions de C Matrix API

Partager des fichiers MEX

Résolution des problèmes

Erreurs de compilation

Erreurs run-time

Débuggage