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 :

lecture d'un gros fichier .txt avec chiffre avec virgule


Sujet :

MATLAB

  1. #1
    Futur Membre du Club
    Femme Profil pro
    Enseignant Chercheur
    Inscrit en
    Septembre 2020
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Enseignant Chercheur

    Informations forums :
    Inscription : Septembre 2020
    Messages : 7
    Points : 9
    Points
    9
    Par défaut lecture d'un gros fichier .txt avec chiffre avec virgule
    Bonjour,
    Dans le cadre de rapatriement de données pour un traitement sous matlab je me heurte à la mise sous forme matricielle des données.
    le fichier text (que j'arrive à voir sous notepad car il a 46000000 lignes....) m'indique ce format

    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
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    distancex :126 distancez :0 Frequence :598
    0 58,9461 224,8775 49
    0 58,7742 224,6644 51
    0 58,5582 224,2413 47
    0 58,3896 224,0423 48
    0 58,2626 224,0401 50
    0 58,2207 224,4450 48
    0 58,0935 224,4429 50
    0 57,9225 224,2304 52
    0 57,7954 224,2283 54
    0 57,6710 224,2392 49
    0 57,5874 224,4473 47
    0 57,5009 224,6425 47
    0 0,0000 0,0000 0
    0 0,0000 0,0000 0
    0 57,0758 224,4254 48
    0 56,9486 224,4233 52
    0 56,7812 224,2240 52
    0 56,6514 224,2087 54
    0 56,5244 224,2066 52
    0 56,4399 224,4146 50
    0 56,3553 224,6229 50
    0 0,0000 0,0000 0
    0 0,0000 0,0000 0
    0 0,0000 0,0000 0
    0 55,7225 223,9969 51
    0 55,6349 224,1914 51
    0 55,5079 224,1892 51
    0 0,0000 0,0000 0
    0 0,0000 0,0000 0
    0 0,0000 0,0000 0
    0 0,0000 0,0000 0
    0 0,0000 0,0000 0
    0 54,7044 223,9665 47
    0 54,5775 223,9643 48
    0 54,4506 223,9622 46
    0 0,0000 0,0000 0
    0 0,0000 0,0000 0
    0 0,0000 0,0000 0
    0 0,0000 0,0000 0
    0 0,0000 0,0000 0
    0 0,0000 0,0000 0
    0 0,0000 0,0000 0
    0 0,0000 0,0000 0
    0 0,0000 0,0000 0
    0 0,0000 0,0000 0
    0 0,0000 0,0000 0
    0 0,0000 0,0000 0
    0 0,0000 0,0000 0
    0 0,0000 0,0000 0
    0 0,0000 0,0000 0
    0 0,0000 0,0000 0
    0 0,0000 0,0000 0
    0 0,0000 0,0000 0
    0 0,0000 0,0000 0
    0 0,0000 0,0000 0
    0 0,0000 0,0000 0
    0 0,0000 0,0000 0
    0 0,0000 0,0000 0
    0 0,0000 0,0000 0
    0 0,0000 0,0000 0

    Je veux créer une matrice en faisant sauter la première ligne et en formant une matrice avec 4 colonnes.
    Pour de précédentes données j'avais des points et non des virgules, donc pas de problème, j'utilisais le code suivant
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    chaine=['fid=fopen(''T03_laser_profil_tir_',num2str(file),'.txt''',',''r'')'];
        eval(chaine);
        C_data=textscan(fid,'%f %f %f %f','delimiter',' ','headerlines',1);  
        celldisp(C_data);
        laser=[C_data{1} C_data{3} C_data{2} C_data{4}];
    mais là comme il y a des virgules, je bloque....
    merci d'avance pour l'aide !

  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 : 52 882
    Points
    52 882
    Par défaut
    Pour commencer, on n'utilise jamais la fonction eval. Le deuxième code devient :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    fname = sprintf('T03_laser_profil_tir_%d.txt', file);
     
    fid = fopen(fname, 'r');
    C_data = textscan(fid, '%f%f%f%f', 'delimiter',' ', 'headerlines', 1, 'collectoutput', true);
    fclose(fid);
     
    laser = C_data{1}
    Pour le fichier avec des virgules, on peut par exemple faire ceci si le nombre de décimales reste constant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    fname = sprintf('T03_laser_profil_tir_%d.txt', file);
     
    fid = fopen(fname, 'r');
    C_data = textscan(fid, '%d %d,%d %d,%d %d', 'headerlines', 1, 'collectoutput', true);
    fclose(fid);
     
    C_data{1} = double(C_data{1});
     
    laser = [C_data{1}(:,1) C_data{1}(:,2)+C_data{1}(:,3)/10000 C_data{1}(:,4)+C_data{1}(:,5)/10000 C_data{1}(:,6)]
    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)

Discussions similaires

  1. Problème de lecture d'un gros fichier .txt depuis une URL
    Par DeepLearning dans le forum Entrée/Sortie
    Réponses: 4
    Dernier message: 15/01/2018, 20h06
  2. Lecture de la dernière ligne d'un gros fichier txt
    Par megamario dans le forum VB 6 et antérieur
    Réponses: 10
    Dernier message: 16/09/2011, 06h38
  3. Probléme de lecture d'un fichier .txt avec java
    Par samorra dans le forum Entrée/Sortie
    Réponses: 4
    Dernier message: 29/09/2009, 00h13
  4. Problème de lecture de fichier .txt avec Flash
    Par cdevl32 dans le forum Flex
    Réponses: 0
    Dernier message: 25/05/2008, 17h35
  5. Réponses: 2
    Dernier message: 01/05/2007, 18h50

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