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 :

Recupérer une données dans un fichier compliqué


Sujet :

MATLAB

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    1 002
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2008
    Messages : 1 002
    Points : 476
    Points
    476
    Par défaut Recupérer une données dans un fichier compliqué
    Bonjour,

    J'ai des fichiers (.raw) du type :

    FFT Raw Data
    ============

    Data Filename : C:\Documents and Settings\guillaume.chambon\Bureau\MAINSANT\TEST_2011_02_24_OSC_58\rawdata0011.raw
    Creation Date : Thursday, February 24, 2011 10:48:22
    Version : 1

    General Heading : none
    Start Of Test : Thursday, February 24, 2011 10:42:45

    Param File XRef : {9BC5F336-4391-4B38-B186-260850B7E120}
    Param File : none
    Param Desc : none
    Owner ID : none

    Measuring System
    - Title : PP 60 rugueux corrig
    - Type : PARALLEL PLATES
    - C1 : 1.768400e+04 Pa/Nm
    - C2 : 3.000000e+01 1/rad
    - C3 : 1.000000e+00 mm
    - C4 : 5.100000e-06 Kgm^2

    Air Bearing Inertia : 1.570000e-05 Kgm^2

    Test Run : 1
    Temperature Run : 1
    Temperature Index : 1
    Data Point : 11

    Point Raw Torque Uncor Raw Disp Raw Disp Force(g)
    0 -2.257303e-04 0.000000e+00 -1.020748e-05 -1.096230e+02
    1 -2.460893e-04 2.041757e-05 1.021052e-05 -1.096230e+02

    [.....]

    2040 -6.068914e-05 9.764924e-06 4.416929e-07 -1.113550e+02
    2041 -8.146503e-05 1.952985e-05 1.020705e-05 -1.113550e+02
    2042 -1.022132e-04 7.101763e-06 -2.220601e-06 -1.113550e+02
    2043 -1.229267e-04 1.509125e-05 5.769315e-06 -1.113550e+02
    2044 -1.435987e-04 1.864213e-05 9.320630e-06 -1.113550e+02
    2045 -1.642221e-04 3.550881e-06 -5.770182e-06 -1.113550e+02
    2046 -1.847898e-04 2.219301e-05 1.287238e-05 -1.113550e+02
    2047 -2.052947e-04 4.438602e-06 -4.881595e-06 -1.113550e+02

    FFT Successful

    Raw Torque Amp : 2.047464e+03
    Raw Ang Disp Amp : 3.863534e-05 rad
    Raw Phase Angle (rad) : 1.765852e-01 rad
    Raw Phase Angle (deg) : 1.011759e+01 deg
    G* : 5.176815e+04 Pa
    G' : 5.096325e+04 Pa
    G\\ : 9.093305e+03 Pa
    Eta* : 4.773697e+03 Pa
    Phase Angle : 1.011674e+01 deg
    Stress : 1.999916e+01 Pa
    Frequency : 1.725949e+00 Hz
    Peak Strain : 3.863534e-04

    ***** EOF *****
    Avec un header en tête et un header de fin. Au milieu les données (ici 2048 mais cela peut varier suivant les fichiers).

    Question: j'aimerais pour tout fichier indépendamment du nombre de ligne de data, retrouver la valeur de frequency (ici = 1.725949e+00 Hz) en rouge.

    Y'a t il un moyen simple, je suis paumé.

    Merci d'avance !
    OS : taff > Window 7 32bit - Home > Windows 7 64bit
    Matlab : taff > v2013b - Home > r2009a

  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 166
    Points
    53 166
    Par défaut
    Deux solutions :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    fid = fopen('rawdata0011.raw','rt');
     
    str = fgetl(fid);
     
    while ~strncmp(str,'Frequency :',11)
        str = fgetl(fid);    
    end
     
    fclose(fid);
     
    F = sscanf(str,'Frequency : %f');
    ou
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    X = textread('rawdata0011.raw','%s','delimiter','\n');
     
    idx = strncmp(X,'Frequency :',11);
     
    F = sscanf(X{idx},'Frequency : %f');
    Ces deux codes supposent que la ligne commençant par Frequency est toujours présente. Dans le cas contraire, il faudra le prévoir.
    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 confirmé
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    1 002
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2008
    Messages : 1 002
    Points : 476
    Points
    476
    Par défaut
    parfait merci !
    OS : taff > Window 7 32bit - Home > Windows 7 64bit
    Matlab : taff > v2013b - Home > r2009a

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

Discussions similaires

  1. Recupérer une ligne dans un fichier
    Par oliviernouhi dans le forum Langage
    Réponses: 4
    Dernier message: 22/11/2010, 11h44
  2. Réponses: 1
    Dernier message: 01/03/2008, 12h01
  3. ajout d'une donnée dans un fichier texte
    Par sorenson2 dans le forum Langage
    Réponses: 2
    Dernier message: 09/12/2007, 12h41
  4. Comment suprimer une donnée dans un fichier texte ?
    Par mamou30 dans le forum Langage
    Réponses: 8
    Dernier message: 30/10/2007, 11h12
  5. [Configuration] Supprimer une donnée dans un fichier
    Par cirtey dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 8
    Dernier message: 07/02/2007, 16h36

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