IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

MATLAB Discussion :

Liaison entre C et MATLAB [MEX]


Sujet :

MATLAB

  1. #1
    Membre régulier
    Inscrit en
    Décembre 2006
    Messages
    329
    Détails du profil
    Informations forums :
    Inscription : Décembre 2006
    Messages : 329
    Points : 88
    Points
    88
    Par défaut Liaison entre C et MATLAB
    Bonjour j'ai un programme sous matlab qui utilise des fonction implementer sous C
    j'ai trouve ce fichier sous matlab mais j'ai pas compris son continue

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
     
    reponse = which('delete DeriveImage.mexmac') ;
    if(strcmp(reponse,'')==0) delete DeriveImage.mexmac ; end ;
    % mex -v -argcheck DeriveOmni.c % InterNoyau.c Interaction.c Choquet.c Tri.c
    mex -v -argcheck DeriveImage.c Deriche.c Castan.c % Choquet.c
    et qaund je veux executer mon programme
    je dois utiliser ce commande
    mex
    mex - setup
    mais j'ai pas bien compris le role de ce commande
    Merci bien d'avence

  2. #2
    Rédacteur/Modérateur

    Avatar de Jerome Briot
    Homme Profil pro
    Freelance mécatronique - Conseil, conception et formation
    Inscrit en
    Novembre 2006
    Messages
    20 302
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Freelance mécatronique - Conseil, conception et formation

    Informations forums :
    Inscription : Novembre 2006
    Messages : 20 302
    Points : 52 882
    Points
    52 882
    Par défaut
    Les fichiers MEX servent à interfacer des codes C (entre autre) avec MATLAB.

    1. on écrit un fichier MEX (fichier C qui englobe les codes C)
    2. on le compile en utilisant
    3. on utilise le fichier compilé dans MATLAB


    Plus d'information : MEX-files Guide

    Il y a aussi un exemple "yprime.c" livré avec MATLAB (voir la documentation)
    Ingénieur indépendant en mécatronique - Conseil, conception et formation
    • Conception mécanique (Autodesk Fusion 360)
    • Impression 3D (Ultimaker)
    • Développement informatique (Python, MATLAB, C)
    • Programmation de microcontrôleur (Microchip PIC, ESP32, Raspberry Pi, Arduino…)

    « J'étais le meilleur ami que le vieux Jim avait au monde. Il fallait choisir. J'ai réfléchi un moment, puis je me suis dit : "Tant pis ! J'irai en enfer" » (Saint Huck)

  3. #3
    Membre régulier
    Inscrit en
    Décembre 2006
    Messages
    329
    Détails du profil
    Informations forums :
    Inscription : Décembre 2006
    Messages : 329
    Points : 88
    Points
    88
    Par défaut
    j'ai pas bien compris mais normalement j'ai excuté le fichier matlab d'une maniere simple apres la commande mex -setup

    ou bien je vais faire une autre truc avant l'execution parceque mon objectif est de tester le programme sous matlab

  4. #4
    Rédacteur/Modérateur

    Avatar de Jerome Briot
    Homme Profil pro
    Freelance mécatronique - Conseil, conception et formation
    Inscrit en
    Novembre 2006
    Messages
    20 302
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Freelance mécatronique - Conseil, conception et formation

    Informations forums :
    Inscription : Novembre 2006
    Messages : 20 302
    Points : 52 882
    Points
    52 882
    Par défaut
    As-tu bien lu la documentation et le lien que je t'ai donné ?

    La commande "mex -setup" ne sert qu'à choisir le compilateur que tu souhaites utiliser pour compiler les fichiers C. Tu dois exécuter cette commande une seule fois. Après avoir tapé cette commande tu obtiens :
    Please choose your compiler for building external interface (MEX) files:

    Would you like mex to locate installed compilers [y]/n?
    Tu tapes "y" et tu choisis le compilateur dans la liste proposée par MATLAB.

    Une fois que tu as fait ceci, essaie de compiler l'exemple "yprime.c" donné dans la documentation (tout est dans les liens que j'ai donné).

    Une fois que tout fonctionne, tu n'as plus qu'à convenablement écrire tes fichiers MEX et à les compiler. Plus besoin de faire "mex -setup", sauf si tu souhaites changer de compilateur.
    Ingénieur indépendant en mécatronique - Conseil, conception et formation
    • Conception mécanique (Autodesk Fusion 360)
    • Impression 3D (Ultimaker)
    • Développement informatique (Python, MATLAB, C)
    • Programmation de microcontrôleur (Microchip PIC, ESP32, Raspberry Pi, Arduino…)

    « J'étais le meilleur ami que le vieux Jim avait au monde. Il fallait choisir. J'ai réfléchi un moment, puis je me suis dit : "Tant pis ! J'irai en enfer" » (Saint Huck)

  5. #5
    Membre régulier
    Inscrit en
    Décembre 2006
    Messages
    329
    Détails du profil
    Informations forums :
    Inscription : Décembre 2006
    Messages : 329
    Points : 88
    Points
    88
    Par défaut
    apres avoir faire mex -setup
    il me donne un certain nombre de tache pour choisir le compilateur
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
     
    >> mex -setup
    Please choose your compiler for building external interface (MEX) files: 
     
    Would you like mex to locate installed compilers [y]/n? y
     
    Select a compiler: 
    [1] Lcc C version 2.4 in C:\MATLAB7\sys\lcc 
     
    [0] None 
     
    Compiler: 1
     
    Please verify your choices: 
     
    Compiler: Lcc C 2.4 
    Location: C:\MATLAB7\sys\lcc 
     
    Are these correct?([y]/n): y
     
    Try to update options file: C:\Documents and Settings\RAMINET\Application Data\MathWorks\MATLAB\R14\mexopts.bat 
    From template:              C:\MATLAB7\BIN\WIN32\mexopts\lccopts.bat 
     
    Done . . .
    apres je dois compiler l'exemple yprime
    j'ai fait comme ça

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    >> mex yprime.c
     
      C:\MATLAB7\BIN\WIN32\MEX.PL: Error: 'yprime.c' not found. 
     
    ??? Error using ==> mex
    Unable to complete successfully
    mais il me donne cette erreur

  6. #6
    Rédacteur/Modérateur

    Avatar de Jerome Briot
    Homme Profil pro
    Freelance mécatronique - Conseil, conception et formation
    Inscrit en
    Novembre 2006
    Messages
    20 302
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Freelance mécatronique - Conseil, conception et formation

    Informations forums :
    Inscription : Novembre 2006
    Messages : 20 302
    Points : 52 882
    Points
    52 882
    Par défaut
    Voir cette discussion : [MEX] Problème de compilation

    C'est un simple problème de chemin d'accès au fichier yprime.c
    Ingénieur indépendant en mécatronique - Conseil, conception et formation
    • Conception mécanique (Autodesk Fusion 360)
    • Impression 3D (Ultimaker)
    • Développement informatique (Python, MATLAB, C)
    • Programmation de microcontrôleur (Microchip PIC, ESP32, Raspberry Pi, Arduino…)

    « J'étais le meilleur ami que le vieux Jim avait au monde. Il fallait choisir. J'ai réfléchi un moment, puis je me suis dit : "Tant pis ! J'irai en enfer" » (Saint Huck)

  7. #7
    Membre régulier
    Inscrit en
    Décembre 2006
    Messages
    329
    Détails du profil
    Informations forums :
    Inscription : Décembre 2006
    Messages : 329
    Points : 88
    Points
    88
    Par défaut
    j'ai pas encore marche,
    pour l'exemple de yprime.c où je serai dans le chemein de matlab pour que je vais faire seulement

    mex yprime.c

    parceque dans mon repertoire de travail contient tout les fichier matlab et C mais il me donne aucun resultat

    merci d'avence

  8. #8
    Expert confirmé
    Avatar de tug83
    Homme Profil pro
    MATLAB Geek !
    Inscrit en
    Juin 2006
    Messages
    1 781
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Alpes de Haute Provence (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : MATLAB Geek !
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2006
    Messages : 1 781
    Points : 4 039
    Points
    4 039
    Par défaut
    pas très clair ton post!!
    enfin bon essaie:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    demofile = [matlabroot '/extern/examples/mex/yprime.c'];
    copyfile(demofile, '.');
    mex -mv yprime.c
    MATLAB 8.2 (R2013b)

    le blog des MATLAB geeks

  9. #9
    Membre régulier
    Inscrit en
    Décembre 2006
    Messages
    329
    Détails du profil
    Informations forums :
    Inscription : Décembre 2006
    Messages : 329
    Points : 88
    Points
    88
    Par défaut
    merci bien
    pour l'exemple de yprime ca marche quand j'ai change le chemin sous matlab comme ça
    ' \extern\exemple\mex\yprime.c

    mais quand j'ai change le chemin vers mon chemin de travail le code matlab ne fonctionne plus

  10. #10
    Rédacteur/Modérateur

    Avatar de Jerome Briot
    Homme Profil pro
    Freelance mécatronique - Conseil, conception et formation
    Inscrit en
    Novembre 2006
    Messages
    20 302
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Freelance mécatronique - Conseil, conception et formation

    Informations forums :
    Inscription : Novembre 2006
    Messages : 20 302
    Points : 52 882
    Points
    52 882
    Par défaut
    Citation Envoyé par hanane78 Voir le message
    mais quand j'ai change le chemin vers mon chemin de travail le code matlab ne fonctionne plus
    Montre nous le code que tu as utilisé et le message d'erreur complet de MATLAB (parce qu'on ne peut pas tout deviner )
    Ingénieur indépendant en mécatronique - Conseil, conception et formation
    • Conception mécanique (Autodesk Fusion 360)
    • Impression 3D (Ultimaker)
    • Développement informatique (Python, MATLAB, C)
    • Programmation de microcontrôleur (Microchip PIC, ESP32, Raspberry Pi, Arduino…)

    « J'étais le meilleur ami que le vieux Jim avait au monde. Il fallait choisir. J'ai réfléchi un moment, puis je me suis dit : "Tant pis ! J'irai en enfer" » (Saint Huck)

  11. #11
    Membre régulier
    Inscrit en
    Décembre 2006
    Messages
    329
    Détails du profil
    Informations forums :
    Inscription : Décembre 2006
    Messages : 329
    Points : 88
    Points
    88
    Par défaut
    le probleme ne vient bien de chemein mais de programme
    parceque j'ai pas bien compris quelque fonction dans le code

    merci bien

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Liaison entre C et MATLAB
    Par Marlein dans le forum MATLAB
    Réponses: 5
    Dernier message: 27/12/2013, 13h04
  2. liaison entre java et matlab
    Par hammasaidi dans le forum Graphisme
    Réponses: 2
    Dernier message: 13/10/2010, 21h40
  3. liaison entre plusieurs base de donnee
    Par GMI dans le forum Bases de données
    Réponses: 1
    Dernier message: 15/12/2004, 18h42
  4. Opérer une liaison entre 2 DBLookup
    Par pey dans le forum Bases de données
    Réponses: 3
    Dernier message: 10/12/2004, 10h11
  5. Liaison entre un dblookupcombobox (filtre) et un dbgrid
    Par naw dans le forum Bases de données
    Réponses: 9
    Dernier message: 22/08/2004, 12h12

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo