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

Python Discussion :

Fonction MATLAB sous python [Python 2.X]


Sujet :

Python

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2017
    Messages
    25
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 28
    Localisation : France, Vienne (Poitou Charente)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2017
    Messages : 25
    Par défaut Fonction MATLAB sous python
    Bonjour à tous,
    Je souhaiterai faire une boucle sous python me permettant d'appeler 2 fonctions Python et 1 fonction Matlab de ce genre :

    Loop (avec variation de i)

    Fonction Matlab (dans cette fonction se trouve le i )
    Fonction Python
    Fonction Python

    end loop


    Fonction matlab :

    Code MATLAB : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
        fid = fopen('frrr.csv', 'wt');
     
        fprintf(fid, 'Km_g3p_DXS, Km_pyr_DXS, Km_dxp_DXS\n');
        fprintf(fid, '%f, ', ParamSets(i,1:end-1));
        fprintf(fid, '%f', ParamSets(i,end));
     
        fclose(fid);

    Mon problème est que je n'arrive pas à appeler une fonction Matlab sous Python (même avec l'aide de la doc...). Pouvez vous m'aider svp?

    Merci !

  2. #2
    Expert confirmé
    Avatar de fred1599
    Homme Profil pro
    Lead Dev Python
    Inscrit en
    Juillet 2006
    Messages
    4 062
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Lead Dev Python
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juillet 2006
    Messages : 4 062
    Par défaut
    Je ne vois rien que matlab sait faire et que python ne sait pas faire. En l'occurrence tu écris dans un fichier à l'aide de texte formaté, rien de difficile à faire en python. Ta variable i apparaît comme par magie, elle vient d'où ?

    Pourquoi pas tout en python ?

    EDIT: Pour ta variable i c'est juste une boucle répétitive, toujours faisable en python.

  3. #3
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 738
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 738
    Par défaut
    Salut,

    Citation Envoyé par robinooo Voir le message
    Mon problème est que je n'arrive pas à appeler une fonction Matlab sous Python (même avec l'aide de la doc...).
    Appeler une fonction matlab depuis Python dépend de l'interface qu'il y a entre Python et Matlab. Hier votre interface était plutôt un fichier CSV, mais "appeler une fonction", c'est commencer par installer une bibliothèque qui permettra au programmeur Python d'appeler les fonctions de Matlab...

    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  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 317
    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 317

  5. #5
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2017
    Messages
    25
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 28
    Localisation : France, Vienne (Poitou Charente)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2017
    Messages : 25
    Par défaut
    J'exécute un script sous Matlab qui me donne un tableau de valeurs (ParamSets). Le script que j'ai mis dans le message précédent me permet de créer un fichier csv à partir de ce tableau ( à la place du "i" je met un chiffre correspondant au numéro de ligne du tableau que je souhaite avoir dans mon fichier csv). Ensuite j'exécute 2 fonctions sur Python qui utilise ce fichier csv me permettant d'avoir mon résultat voulu.

    Je peux donc tout faire à la main :

    Exécution du script Matlab ( avec i=1) -> création du fichier csv -> exécution des scripts python utilisant ce fichier -> résultat 1
    Exécution du script Matlab ( avec i=2) -> modification du fichier csv -> ... -> résultat 2
    Exécution du script Matlab ( avec i=3) -> modification du fichier csv -> ... -> résultat 3

    C'est donc assez long de faire ça ....


    2) Oui j'ai déjà téléchargé la bibliothèque mais je n'ai aucune idée de comment procéder pour utiliser mon script sur Matlab...

    3) Justement c'est cette doc là que j'ai lu , mais je ne trouve pas ce que souhaite faire.

  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 317
    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 317
    Par défaut
    Tu peux aussi utiliser des commandes systèmes.

    Depuis Python :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    import os
     
    os.system('matlab -r mon_script')
    En remplaçant mon_script par le nom du fichier .m (sans l'extension) contenant le code MATLAB.

    Depuis MATLAB :

    Code MATLAB : Sélectionner tout - Visualiser dans une fenêtre à part
    system('python mon_script.py')

    Il faudra sans doute préfixer les commandes avec les chemins vers les exécutables respectifs.

  7. #7
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2017
    Messages
    25
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 28
    Localisation : France, Vienne (Poitou Charente)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2017
    Messages : 25
    Par défaut
    Ces 2 lignes pourront donc me permettre d'utiliser une fonction Matlab avec Python ?

    Et le code Matlab me donne une erreur ...

    "Error: File: test.m Line: 12 Column: 11
    Function with duplicate name "test" cannot be defined."

  8. #8
    Rédacteur/Modérateur

    Avatar de Jerome Briot
    Homme Profil pro
    Freelance mécatronique - Conseil, conception et formation
    Inscrit en
    Novembre 2006
    Messages
    20 317
    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 317
    Par défaut
    Citation Envoyé par Jerome Briot Voir le message
    Il faudra sans doute préfixer les commandes avec les chemins vers les exécutables respectifs.
    Dans mon cas avec Anaconda 3 :

    Code MATLAB : Sélectionner tout - Visualiser dans une fenêtre à part
    system('C:\Anaconda3\python final.py')

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

Discussions similaires

  1. Fonction MATLAB sous Python
    Par robinooo dans le forum MATLAB
    Réponses: 0
    Dernier message: 18/07/2017, 13h31
  2. [Débutant] apelle de fonction matlab sous C++ builder
    Par kheira dans le forum C++Builder
    Réponses: 6
    Dernier message: 02/06/2011, 19h07
  3. Appel d'un fonction C sous Python et blocage des autres threads
    Par mkrzemin dans le forum Interfaçage autre langage
    Réponses: 3
    Dernier message: 07/02/2008, 14h52
  4. Fonction addslashes sous Python ?
    Par ecocentric dans le forum Général Python
    Réponses: 2
    Dernier message: 28/01/2006, 18h27
  5. Inclure des fonction matlab sous visual c++
    Par petdelascar dans le forum MFC
    Réponses: 3
    Dernier message: 21/11/2005, 17h03

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