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 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, ... )
|