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 :

Appeler un programme en Fortran [MEX]


Sujet :

MATLAB

  1. #1
    Membre à l'essai
    Inscrit en
    Septembre 2007
    Messages
    30
    Détails du profil
    Informations forums :
    Inscription : Septembre 2007
    Messages : 30
    Points : 16
    Points
    16
    Par défaut Appeler un programme en Fortran
    salut j'ai pour objectif d appeler un programme en fortran sous Matlab.
    J'utilise donc la commande MEX FILES mais on me demande de selectionner un compileur.
    Qu'est ce qu'un compileur?
    Comment je peux resoudre ce probleme?

    Ma fonction est la suivante:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    subroutine timestwo1(y, x)
    real*8 x, y
    C 
    y = 2.0 * x
    return
    end
    Et dans la commande Matlab voila ce qu'on obtient:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    >> mex timestwo1.f
     
    Select a compiler: 
     
    [0] None 
     
    Compiler:
    Merci de me repondre
    Tchao

  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 : 53 160
    Points
    53 160
    Par défaut
    Citation Envoyé par briscouille Voir le message
    Qu'est ce qu'un compileur?
    http://dico.developpez.com/html/1274...ompilateur.php
    Citation Envoyé par briscouille Voir le message
    Comment je peux resoudre ce probleme?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    >> mex timestwo1.f
     
    Select a compiler: 
     
    [0] None 
     
    Compiler:
    Il n'y a aucun compilateur Fortran installé sur ta machine. Il va donc falloir en installer un.

    Quelle ta version de MATLAB ? Utilise la fonction VERSION pour le déterminer.

    Tu trouveras la liste complète des compilateurs supportés par les différentes versions de MATLAB ici : Supported / Compatible Compilers for MATLAB 7.5 (R2007b)

    Si tu possèdes la dernière version de MATLAB, tu devras (officiellement) te procurer l'un de ces trois compilateurs :
    • Open Watcom
    • Intel Visual Fortran
    • Compaq Visual Fortran


    Toutes ces informations sont bien entendu à approfondir car je n'ai jamais écrit de code Fortran
    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 à l'essai
    Inscrit en
    Septembre 2007
    Messages
    30
    Détails du profil
    Informations forums :
    Inscription : Septembre 2007
    Messages : 30
    Points : 16
    Points
    16
    Par défaut
    Merci pour ta reponse Dut.
    J'ai la version 7.3.0.267 (R2006b) de Matlab.
    En fait jvais t'expliquer ma situation:
    Jsuis en Stage en Allemagne dans le spatial et on me demande de faire marcher un programme dans Matlab. Le programme est disponible au lien suivant:
    http://www.grc.nasa.gov/WWW/CEAWeb/ceaRequestForm.htm
    C'est un programme qui permet a partir de données d'entrée (pression, temperature...) de calculer des resultats interessants. Je ne sais pas si tu prendra le temps de t occuper de mon cas mais ca serait vraiment sympathique parce que je connais matlab depuis 15 jours et le FORTRAN ca reste encore tres flou. Enfin bref, le fichier INPOUT est en Fortran donc je ne sais pas vraiment comment l'appeler dans Matlab et par la suite le passer dans le fichier exe pour qu'il me balance les resultats demandés. On me demande les resultats sous forme d'une matrice dans Matlab.
    Voila je ne sais pas si tu as compris quelquechose a ce que je t'ai dit parce que meme pour moi c pas vraiment clair.
    Mais en tout cas si tu as un ptit peu de temps a me consacrer j'accepte plus que volontier ton aide.
    jte remercie d'avance

  4. #4
    Membre à l'essai
    Inscrit en
    Septembre 2007
    Messages
    30
    Détails du profil
    Informations forums :
    Inscription : Septembre 2007
    Messages : 30
    Points : 16
    Points
    16
    Par défaut
    ah oui j'oubliais, est ce vraiment necessaire d'avoir un compileur pour ce que je veux faire??

  5. #5
    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 : 53 160
    Points
    53 160
    Par défaut
    Ton problème est relativement simple (faut bien positiver)

    Voila ce que tu cherches à faire :

    Code Fortran => MEX => MATLAB

    Donc il te faut obligatoirement un compilateur Fortran (si il est dans la liste que je t'ai donné, c'est encore mieux).

    Donc tu demandes à ton tuteur de stage si il a un compilateur Fortran ?

    (me demande pas de te traduire la demande en allemand. Ah si MATLAB se dit MATLAB )

    Si il n'y en a pas, il faut en trouver un.

    Si il y en a un, tu te jettes sur la documentation MATLAB dans le chapitre "External Interface" et tu bosses la partie MEX-Fortran (il y a des exemples simples).

    Note : une autre solution, c'est de tout recoder en MATLAB. Les deux langages ne sont pas si différents (je crois). Par contre, vu ton niveau dans l'un ou dans l'autre, ça ne me semble pas être plus efficace
    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)

  6. #6
    Membre à l'essai
    Inscrit en
    Septembre 2007
    Messages
    30
    Détails du profil
    Informations forums :
    Inscription : Septembre 2007
    Messages : 30
    Points : 16
    Points
    16
    Par défaut
    tinkiete heureusement mon tuteur parle anglais (avec un vieil accent americano-hollandais mais c toujours mieux que l'allemand ).

    On en a parlé a midi de mon probleme de compileur et il m'a dit que ce n'était ptete pas necessaire et m'a proposé une autre méthode que je vais tester (on verra bien).
    Mais pour cela j'ai besoin de savoir si c'est possible d'appeler un fichier.exe a partir de Matlab.

  7. #7
    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 : 53 160
    Points
    53 160
    Par défaut
    Citation Envoyé par briscouille Voir le message
    appeler un fichier.exe a partir de Matlab.
    Regarde la fonction SYSTEM (et les fonctions similaires)
    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)

  8. #8
    Membre à l'essai
    Inscrit en
    Septembre 2007
    Messages
    30
    Détails du profil
    Informations forums :
    Inscription : Septembre 2007
    Messages : 30
    Points : 16
    Points
    16
    Par défaut
    nickel
    J'aurai surement encore besoin d'aide mais pour l'instant c tout bon.
    Jte remercie Dut.

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

Discussions similaires

  1. Réponses: 4
    Dernier message: 13/07/2012, 21h30
  2. Appel sous programme
    Par sam.fet dans le forum Linux
    Réponses: 2
    Dernier message: 17/08/2006, 13h20
  3. Appeler un programme sur le poste client avec <object>
    Par ouioui2000 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 2
    Dernier message: 22/08/2005, 15h40
  4. [Kylix] pb d'appel de programme externe
    Par wizwiz dans le forum EDI
    Réponses: 2
    Dernier message: 27/08/2004, 10h29
  5. [langage] appel de programmes exterieurs
    Par martijan dans le forum Langage
    Réponses: 34
    Dernier message: 07/07/2003, 11h40

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