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 de fichier texte


Sujet :

MATLAB

  1. #1
    Membre averti
    Inscrit en
    Octobre 2007
    Messages
    29
    Détails du profil
    Informations forums :
    Inscription : Octobre 2007
    Messages : 29
    Par défaut Lecture de fichier texte
    Bonjour,

    Je cherche à lire un fichier texte de 10 colonnes ayant chacune une entête.Les colonnes 2 à 9 sont des images à reconstruire plus tard. Je compte avoir chaque image dans une colonne d'une grande matrice.

    Voici ce que j'ai pu faire mais ça ne donne pas un résultat satisfaisant. De plus, j'ai du retirer manuellement le nom des colonnes (entête) avec un éditeur de texte pour lire (mal) le fichier. La première colonne (numerique) et la dernière colonne (string) ne sont pas utiles. Les colonnes sont séparées par des tabulations.

    De plus, imwrite ne semble pas permettre l'écriture d'images en 32bits. Quelle est la solution?

    Merci par avance pour votre aide.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    fid=fopen('D:\monfichiertexte.txt','r');
    donneesbrutes=fscanf(fid,'%d\t%g\t%g\t%g\t%g\t%g\t%g\t%g\t%g\t%s\n',[10 inf]);
    donnees=donneesbrutes';
    fclose(fid)

  2. #2
    Membre émérite

    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    552
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Novembre 2007
    Messages : 552
    Par défaut
    Bonjour,
    Essayes la fonction textscan. Tu peux utiliser un l'option headerLines pour ne pas lire le début du fichier.
    La fonction cell2mat permet ensuite d'obtenir une matrice.

  3. #3
    Membre averti
    Inscrit en
    Octobre 2007
    Messages
    29
    Détails du profil
    Informations forums :
    Inscription : Octobre 2007
    Messages : 29
    Par défaut
    merci pour ces conseils. J'arrive quasiment à ce que je recherche.
    J ai encore un pbm avec la lecture de toutes les decimales des valeurs. Ce code arrondi à 4 décimales au lieu de 6 pour les champs de 2 à 9 :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    fid=fopen('D:\monfichiertexte.txt','r');
    donneescell=textscan(fid,'%f%.6f%.6f%.6f%.6f%.6f%.6f%.6f%.6f%*s','Delimiter','\t','Headerlines',1);
    fclose(fid)
    J'ai essayé avec u64 et f64 mais ce n est pas satisfaisant.
    Avez-vous une solution ?
    Je cherche aussi à enregistrer des images en 32bits.

    Merci

  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
    Inscrit en
    Octobre 2007
    Messages
    29
    Détails du profil
    Informations forums :
    Inscription : Octobre 2007
    Messages : 29
    Par défaut
    J ai vérifié que ce n est pas seulement un pbm d affichage.
    A la suite de mon code j ai fait :

    donneesmat=cell2mat (donneescell);
    donneesmat (1,2)

    J'obtiens un chiffre à 4 decimales alors que j ai un chiffre de 6 decimales dans le fichier texte. J ai cette meme valeur arrondie quand je lis les valeurs en double-cliquant sur le nom de la variable donneesmat dans le workspace.
    Fichiers attachés Fichiers attachés

  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
    >> format long
    >> donneescell{3}

    ans =

    0.000315000000000
    0.001260000000000
    0.000315000000000
    0.001050000000000
    0.000090000000000
    0.006300000000000
    0.000270000000000
    0.000630000000000
    0.001890000000000
    0.000315000000000

    >> donneesmat=cell2mat (donneescell);
    donneesmat (1,2)

    ans =

    0.451428000000000

  7. #7
    Membre averti
    Inscrit en
    Octobre 2007
    Messages
    29
    Détails du profil
    Informations forums :
    Inscription : Octobre 2007
    Messages : 29
    Par défaut
    Ok ! Le fichier est donc bien lu.
    C'est une question d'affichage dans matlab.

    Merci

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 08/11/2006, 20h57
  2. [C#]Lecture gros fichier texte
    Par kekesilo dans le forum Windows Forms
    Réponses: 5
    Dernier message: 20/05/2006, 13h58
  3. Lecture d´un fichier texte .
    Par pilouface dans le forum C
    Réponses: 5
    Dernier message: 20/01/2006, 23h48
  4. [AS2] Lecture Ecriture Fichier Texte
    Par cpr0 dans le forum ActionScript 1 & ActionScript 2
    Réponses: 4
    Dernier message: 13/09/2005, 11h22
  5. lecture de fichier texte
    Par prorider dans le forum C
    Réponses: 36
    Dernier message: 08/09/2004, 20h55

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