Bonjour,
quelqu'un pourrait-il m'expliquer à quoi sert les fichiers MEX-files ou le matlab engine s'il vous plait??
Et si possible avoir un exemple ou un tuto en francais??
Merci
Salutations!!
Bonjour,
quelqu'un pourrait-il m'expliquer à quoi sert les fichiers MEX-files ou le matlab engine s'il vous plait??
Et si possible avoir un exemple ou un tuto en francais??
Merci
Salutations!!
Les fichiers MEX permettent d'exécuter des codes écrits en langage C, C++ ou Fortran directement dans MATLAB. Le MATLAB Engine permet de faire l'inverse.
Pour le C par exemple, un fichier C-MEX est un fichier écrit en C et dont le corps est :
Code C : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 #include "mex.h" void mexFunction( int nlhs, mxArray *plhs[], int nrhs, const mxArray *prhs[]) { /* Mettre le code C ici et utilise la "Gateway routine" pour passer les arguments d'entrée et de sortie */ }
Pour intégrer le MATLAB Engine dans un code C :
Code C : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14 #include "engine.h" int main() { Engine *ep; ep = engOpen("\0"); /* Ouverture du MATLAB Engine */ /* Appels aux fonctions MATLAB ici */ engClose(ep); /* Fermeture du MATLAB Engine */ }
Il faut se réferrer à la documentation pour la syntaxe des appels aux fonctions dans les deux cas => http://www.mathworks.com/help/techdo...l/bp_kqh7.html
Il est nécessaire d'avoir MATLAB installé sur la machine qui exécute le code que ce soit pour le C-MEX ou (bien évidemment) pour le MATLAB Engine.
Lire la note technique correspondante => MEX-files Guide
Voir aussi :
Merci beaucoup pour ta réponse!
Maintenant, je vois un peu mieux la différence entre les deux.
Dans mon cas, je crois que je vais utiliser le matlab engine.
Je voudrai juste savoir si il est possible d'utiliser le matlab mcr installer avec un executable et l'implémenter dans mon code C?
(C'est pour pouvoir distribuer mon programme à n'importe quel ordinateur qui ne possède pas Matlab)
Merci pour votre réponse
Je n'ai jamais essayé mais tu peux certainement le faire avec la commande system de stdlib.h
ça peut être intéressant, effectivement.
Mais j'ai une autre question:
Depuis mon programme C, est ce que je peux envoyer des données à mon exécutable (créé à partir de mon programme matlab)?
En fait, je veux rentrer des données d'entrée de mon programme C dans mon executable pour que celui-ci puisse s'exécuter en fonction des conditions qu'on lui donne.
(je ne sais pas si j'ai été clair...)
Comment puis-je faire ça?
euh ok mais je ne comprends pas trop!!!
Je veux pouvoir rentrer mes paramètres à tout moment pour lancer l'exécutable matlab.
Dans mon programme en C, je dois rentrer des paramètres à définir. Ensuite, le programme s'exécute et me sort certaines valeurs.
Ensuite, l'exécutable matlab s'exécute (grâce au system de stdlib.h comme tu m'as dis) et va chercher ces dernières valeurs pour pouvoir effectuer son programme.
peux-tu me dire comment on fait pour que l'exécutable puisse prendre en compte les valeurs automatiquement?
Y-a-t'il une fonction qui permettrait de pointer les valeurs dans l'exécutable?
ou alors peux-tu m'expliquer comment on fait pour lire le fichier texte (ou binaire) au début de l'exécutable et que celui-ci le prend en compte les valeurs stp?
Je te remercie.
Ben ce sont des caractères et des nombres.
C'est vraiment léger.
Bon, je vais essayer de me débrouiller et si je bloque , je tiens au courant
En tout cas, je te remercie pour ta patience.
Si je trouve, un moyen d'associer le programme Matlab au C (avec "system"), je n'hésiterai pas à poster la solution
Merci beaucoup
Partager