MATLAB est un environnement de programmation technique optimisée pour rivaliser avec la vitesse et l'efficacité du langage C quand il s'agit d' opérations vectorielles . Cependant, il ya un certain ensemble d'opérations à laquelle C est beaucoup plus efficace . Il peut être utile d'écrire certaines parties de votre flux de travail dans les deux programmes C. c MATLAB et peut être compilé en sous-routines MATLAB en utilisant l'utilitaire " MEX " . Instructions
1
créer une copie du fichier de programme C vous souhaitez adapter dans un sous-programme MATLAB .
2
Ajouter le " mex.h " fichier d'en-tête à l' fichier programme C vous souhaitez compiler dans un sous-programme MATLAB :
# include " mex.h "
3
ajouter une fonction passerelle " mexFunction " à votre C fichier de programme après votre fonction de sous-programme à agir comme une interface entre MATLAB et votre code C . Les arguments de " mexFunction " devraient inclure toutes les entrées et les arguments de sortie pour votre routine .
4
écrire du code dans " mexFunction " pour valider le nombre d'entrées et sorties nécessaires , ainsi que la bonne le type de données , la taille et la portée. Le langage et les fonctions C ne manquent pas aussi gracieusement que des fonctions MATLAB à base de scripts
5
Utilisez la fonction " mexErrMsgIdAndTxt ()" pour lancer erreurs de MATLAB lorsque les arguments sont incorrects : .
mexErrMsgIdAndTxt ( " MyToolbox : myMexFunction : missingInput ", " . . entrée manquante myMexFunction nécessite 2 entrées ");
6 Utiliser les fonctions de
mex " getter " pour convertir du format MATLAB données d' entrée en données de format C:
myNumber = mxGetScalar ( myInputs [ 0]); myMatrixPointer = mxGetPr ( myInputs [ 1]);
Voir la documentation MATLAB pour une liste complète de ces fonctions. Photos, illustrations et 7 Utiliser les fonctions de
MEX «Créer» pour créer des données MATLAB dans lequel stocker le résultat de votre fonction C . L'entrée " mxREAL " spécifie le type de données
myOutputs [0] = mxCreateDoubleMatrix (1, nColumns , mxREAL ) . OutputMatrixInMATLAB = mxGetPtr ( myOutputs [ 0]);
8 < p > Appelez votre routine de C à partir de votre " mexFunction . " répertoire de travail courant de
9
direct MATLAB dans le répertoire contenant le fichier C en utilisant le menu Fichier ou la commande " cd" pour changer de répertoire . partir de la ligne de commande
10
Compiler votre programme C en utilisant la commande MATLAB "mex : "
mex myMexFunction.c
11
Exécuter votre fonction dans MATLAB :
myMexFunction ( entrées, sorties, ... )