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 :

récupérer les résultats d'une commande dos sous matlab


Sujet :

MATLAB

  1. #1
    Membre régulier
    Inscrit en
    Novembre 2008
    Messages
    229
    Détails du profil
    Informations forums :
    Inscription : Novembre 2008
    Messages : 229
    Points : 74
    Points
    74
    Par défaut récupérer les résultats d'une commande dos sous matlab
    Bonjour,

    J'utilise la commande dos sous matlab pour exécuter un batch voici le code

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    f=fopen('batch.bat', 'w') ;
    fprintf(f, 'c2d -in fichier.txt \n');
    fclose(f);
    % lancement du batch
    dos('batch');
    Comment peut-on récupérer les résultats de la commande dos sous matlab?
    Au fait, la commande "c2d" donne des résultats, j'ai besoin de ces valeurs pour les utiliser ultérieurement.

    Merci.

  2. #2
    Modérateur

    Homme Profil pro
    Ingénieur en calculs scientifiques
    Inscrit en
    Août 2007
    Messages
    4 639
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Ingénieur en calculs scientifiques

    Informations forums :
    Inscription : Août 2007
    Messages : 4 639
    Points : 7 614
    Points
    7 614
    Par défaut
    Bonjour,

    Citation Envoyé par La documentation de dos
    [status,result] = dos('command') returns the result of the command to the result variable.
    ?
    Pour une bonne utilisation des balises code c'est ici!
    Petit guide du voyageur MATLABien : Le forum La faq Les tutoriels Les sources


    La nature est un livre écrit en langage mathématique. Galilée.

  3. #3
    Membre régulier
    Inscrit en
    Novembre 2008
    Messages
    229
    Détails du profil
    Informations forums :
    Inscription : Novembre 2008
    Messages : 229
    Points : 74
    Points
    74
    Par défaut
    En fait le résultat est le suivant:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    Loaded cnf: 115 vars 406 clauses (0 eclauses)
    1 unit clauses, 95 binary clauses, max clause size: 5
    Generating dtree... done.
    Max Cluster=42, Cutset=6, Context=40, Separator=34, Height=55
    Compiling...done.
    Cache memory: 1.4 MB / Cache count: 33464
    NNF memory: 3.8 MB
    Learned clauses: 1
    Compile Time: 1.953s / Pre-Processing: 0.069s / Post-Processing: 0.067s
     
    1.0% of nodes, and 1.0% of edges are dead.
    Saving 156789 nodes and 367317 edges...done.
    je n'ai besoin que de la dernière information 367317 . Est ce qu'il l'extraire d'une chaîne de caractères?

    Merci.

  4. #4
    Modérateur

    Homme Profil pro
    Ingénieur en calculs scientifiques
    Inscrit en
    Août 2007
    Messages
    4 639
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Ingénieur en calculs scientifiques

    Informations forums :
    Inscription : Août 2007
    Messages : 4 639
    Points : 7 614
    Points
    7 614
    Par défaut
    Il existe plusieurs façons de procéder.

    Un exemple, si la ligne est toujours la même :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    >> S = 'Saving 156789 nodes and 367317 edges...done.';
    >> A = textscan(S,'%s %d %s %s %d %s');
    >> A{5}
     
    ans =
     
          367317
    Pour une bonne utilisation des balises code c'est ici!
    Petit guide du voyageur MATLABien : Le forum La faq Les tutoriels Les sources


    La nature est un livre écrit en langage mathématique. Galilée.

  5. #5
    Membre régulier
    Inscrit en
    Novembre 2008
    Messages
    229
    Détails du profil
    Informations forums :
    Inscription : Novembre 2008
    Messages : 229
    Points : 74
    Points
    74
    Par défaut
    Bonjour,

    Le résultat retourné est un paragraphe:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    Loaded cnf: 115 vars 406 clauses (0 eclauses)
    1 unit clauses, 95 binary clauses, max clause size: 5
    Generating dtree... done.
    Max Cluster=42, Cutset=6, Context=40, Separator=34, Height=55
    Compiling...done.
    Cache memory: 1.4 MB / Cache count: 33464
    NNF memory: 3.8 MB
    Learned clauses: 1
    Compile Time: 1.953s / Pre-Processing: 0.069s / Post-Processing: 0.067s
    1.0% of nodes, and 1.0% of edges are dead.
    Saving 156789 nodes and 367317 edges...done.
    On ne peut pas mettre tous les types de ce résultat dans textscan. Est ce que c'est possible de ne récupérer que 367317 ?
    Merci.

  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 304
    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 304
    Points : 52 888
    Points
    52 888
    Par défaut
    Tu devrais pouvoir isoler la dernière phrase comme ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    [status,result] = dos(...);
     
    idx = strfind(result,'Saving');
     
    str = result(idx:end);
    Et poursuivre avec l'idée de magelan
    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
    Novembre 2008
    Messages
    229
    Détails du profil
    Informations forums :
    Inscription : Novembre 2008
    Messages : 229
    Points : 74
    Points
    74
    Par défaut
    Merci Dut et Magelan

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

Discussions similaires

  1. récupérer les résultats d'une commande linux dans une base de données
    Par fatimazahra kachiri dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 09/04/2014, 13h14
  2. Récupérer résultat d'une commande dos
    Par cem40 dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 15/08/2008, 09h17
  3. [DOS] Récupérer le résultat d'une commande SC
    Par Bahan dans le forum Scripts/Batch
    Réponses: 1
    Dernier message: 16/01/2008, 14h31
  4. Réponses: 2
    Dernier message: 31/01/2006, 16h02
  5. Réponses: 2
    Dernier message: 02/01/2006, 10h39

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