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 :

Extraire une donnée d'un fichier .txt


Sujet :

MATLAB

  1. #1
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2013
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loir et Cher (Centre)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2013
    Messages : 7
    Points : 3
    Points
    3
    Par défaut Extraire une donnée d'un fichier .txt
    Bonjour,

    Actuellement en stage au Danemark, mon maitre de stage m'a demandé de creer un petit un petit programme MATLAB pour extraire la valeur du pH et tracer la courbe au fur et à mesure de la mesure.

    J'utilise un pH-mètre qui envoie la valeur du pH au PC toutes les 9 secondes et sauvegarde cette valeur dans un fichier .txt

    Voilà ce que j' obtiens :
    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
    25
    26
    27
    28
    29
    30
    31
    32
    pH =     5.48                25.3 øC NTC
              2013-04-29  11:19:57
     
    pH =     5.48                25.3 øC NTC
              2013-04-29  11:20:06
     
    pH =     5.48                25.3 øC NTC
              2013-04-29  11:20:15
     
    pH =     5.48                25.3 øC NTC
              2013-04-29  11:20:24
     
    pH =     5.48                25.2 øC NTC
              2013-04-29  11:20:33
     
    pH =     5.48                25.2 øC NTC
              2013-04-29  11:20:42
     
    pH =     5.48                25.2 øC NTC
              2013-04-29  11:20:51
     
    pH =     5.48                25.2 øC NTC
              2013-04-29  11:21:00
     
    pH =     5.48                25.2 øC NTC
              2013-04-29  11:21:09
     
    pH =     5.48                25.2 øC NTC
              2013-04-29  11:21:18
     
    pH =     5.48                25.2 øC NTC
              2013-04-29  11:21:27
    Je souhaiterai extraire juste la valeur du pH, c'est à dire 5.48
    Mais mon problème est qu'en utilisant la commande
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    M=importdata('Na50+5g.txt');
    Je récupère une matrice environ 3000 lignes et 1 colonne, après bidouillage j'arrive à obtenir une autre matrice contenant que :

        'pH =     5.48                25.2 øC NTC'
        'pH =     5.48                25.2 øC NTC'
        'pH =     5.48                25.2 øC NTC'
        'pH =     5.48                25.2 øC NTC'
        'pH =     5.48                25.2 øC NTC'
        'pH =     5.48                25.2 øC NTC'
    Ma question est la suivante, est-il possible de séparer mes vecteurs pour obtenir une matrice où les valeurs du pH sont dans une colonne spécifique ? Ainsi je pourrai isoler ces valeurs et les annexer dans une autre matrice en fonction du temps pour ensuite tracer la courbe.

    Merci par avance

    Lucas

  2. #2
    Membre averti
    Femme Profil pro
    Ingénieur informatique scientifique
    Inscrit en
    Mai 2010
    Messages
    313
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 34
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur informatique scientifique
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Mai 2010
    Messages : 313
    Points : 301
    Points
    301
    Par défaut
    Bonjour,

    vu que tu arrives à récupérer presque ce que tu veux, tu pourrais juste créer une matrice ou tu extraits la chaine '5.48' dans la chaîne 'pH = 5.45 25.2 øC NTC', en utilisant une expression régulière:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    variableAvant = 'pH = 5.45 25.2 øC NTC';
    variableApres = regexp(variableAvant, 'pH = (%d+) ', 'tokens');
    Je n'ai pas le temps de tester mais c'est l'idée!
    Cela ne fonctionne que si ta chaîne est toujours de la forme 'pH = x '

  3. #3
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2013
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loir et Cher (Centre)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2013
    Messages : 7
    Points : 3
    Points
    3
    Par défaut
    Merci pour cette réponse très rapide.
    En effet c'est de toujours de la forme pH= ***, mais ce n'est pas toujours la même valeur, le pH évolue suivant l' expérience en cours. Sachant que le pH évolue comment faire avec

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    variableAvant = 'pH = 5.45 25.2 øC NTC';
    Merci par avance

  4. #4
    Invité
    Invité(e)
    Par défaut
    Bonjour,

    Une solution avec la fonction textscan :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    fid = fopen('Na50+5g.txt','rt');
    data = textscan(fid,'pH = %n %n %*[^p]', ...
        'delimiter',' ', ...
        'MultipleDelimsAsOne', true, ...
        'CollectOutput', true);
    fclose(fid);
    data{1}

  5. #5
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2013
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loir et Cher (Centre)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2013
    Messages : 7
    Points : 3
    Points
    3
    Par défaut
    Wahoooo merci beaucoup, ça marche nikel.

    J'ai juste une autre question, si ce n'est pas trop abusé, est-il possible de sauver les valeurs dans un tableau ou matrice ?

    Merci par avance

    Lucas

  6. #6
    Invité
    Invité(e)
    Par défaut
    Simplement taVariable = data{1};

  7. #7
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2013
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loir et Cher (Centre)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2013
    Messages : 7
    Points : 3
    Points
    3
    Par défaut
    Je vous remercie beaucoup

    Bonne soirée encore merci

  8. #8
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2013
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loir et Cher (Centre)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2013
    Messages : 7
    Points : 3
    Points
    3
    Par défaut
    Bonjour,

    Je me permet de revenir vers vous car pour que mes expériences aillent plus vite, mon maître de stage m'a apporté un deuxième pH-métre comme ça je peut faire deux expériences en même temps.

    Le problème est que celui-ci n'enregistre pas les données sous le même format que le précédent

                          5.552 pH              23øC        20:28:29
    
                          5.552 pH              23øC        20:28:38
    
                          5.502 pH              23øC        20:28:47
    
                          WARNING: Unstable Signal
    
                          5.495 pH              23øC        20:28:56
    
                          5.517 pH              23øC        20:29:05
    
                          7.776 pH              23øC        20:29:14
    
                          WARNING: Unstable Signal
    
                          4.651 pH              23øC        20:29:23
    
                          WARNING: Unstable Signal
    
                          4.171 pH              23øC        20:29:32
    
                          4.143 pH              23øC        20:29:41
    
                          4.139 pH              23øC        20:29:50
    
                          4.137 pH              23øC        20:29:59
    
                          4.136 pH              23øC        20:30:08
    
                          4.136 pH              23øC        20:30:17
    Donc j'ai essayé de modifier le code que vous m'aviez donné précédemment comme ceci

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    fid1=fopen('test.txt','r');
    C = textscan(fid1,'%n pH %n %*[^p]', ...
        'delimiter',' ', ...
        'MultipleDelimsAsOne', true, ...
        'CollectOutput', true);
    C;
    fclose(fid);
    C{1};
    test1=C{1};
    Mais le problème c'est que je ne récupére que la première ligne et j'ai essayé plusieurs codes différend mais impossible d'y arriver.

    Pouvez-vous m' aider une fois de plus ?

    Merci par avance

    Lucas

  9. #9
    Invité
    Invité(e)
    Par défaut
    Une petite erreur : fclose(fid1);.
    Concernant le format %n pH %n %*[^p] que tu utilises, il faut noter que ce n'est plus le 'p' de pH qui commence les lignes mais un chiffre.
    Essai de le remplacer par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    %n pH %n%*2c %8c %*[^0123456789]
    (Tu pourras avoir les dates dans C{2})

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

Discussions similaires

  1. Réponses: 1
    Dernier message: 01/03/2008, 12h01
  2. Extraire des données d'un fichier .txt
    Par carlou135 dans le forum C++
    Réponses: 3
    Dernier message: 18/02/2008, 16h55
  3. Extraire une donnée d'un fichier aleatoirement
    Par ranell dans le forum Entrée/Sortie
    Réponses: 2
    Dernier message: 25/03/2007, 22h33
  4. Supprimer une donnée d'un fichier txt
    Par dinastar dans le forum Langage
    Réponses: 7
    Dernier message: 31/03/2006, 15h28
  5. Réponses: 7
    Dernier message: 29/09/2005, 10h19

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