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 :

Ignorer les X premières lignes


Sujet :

MATLAB

  1. #1
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    Avril 2012
    Messages
    33
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Australie

    Informations professionnelles :
    Secteur : Enseignement

    Informations forums :
    Inscription : Avril 2012
    Messages : 33
    Points : 10
    Points
    10
    Par défaut Ignorer les X premières lignes
    Bonjour tout le monde,

    Cela fait plus d'une heure que j'essaye d'utiliser la fonction "textread - headerlines" afin de ne pas lire les X premières lignes de mon fichier txt mais, rien n'y fait, mon code ne marche toujours pas.

    J'ai donc un fichier txt avec 10000 lignes et 4 colonnes et je veux commencer à faire mes opérations à partir de la 5ème ligne ( de chaque colonne), (les 4 premières lignes sont également des chiffres...)

    Voici mon code qui ne marche pas:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    a=load('/Users/......./Desktop/Data.txt')
    b=textread('a','headerlines',5)
    Pouvez-vous m'aider s'il vous plaît ?

    Merci.

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

    As-tu regardé la documentation de la fonction textread ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    [A,B,C,...] = textread(filename,format,...)

  3. #3
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    Avril 2012
    Messages
    33
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Australie

    Informations professionnelles :
    Secteur : Enseignement

    Informations forums :
    Inscription : Avril 2012
    Messages : 33
    Points : 10
    Points
    10
    Par défaut
    Bonjour,

    Je viens de la lire et j'ai donc utilisé "textscan" car "textread" va être supprimer...

    donc voici mon code:


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    %ouvrir le fichier
    fid=fopen('/Users/++++++/Desktop/A.txt')
     
    %lire les 4 premières colonnes, ignorer les 4 premières lignes
    b = textscan(fid, '%d %d %d %d', 'headerLines',4);
     
    %fermer le fichier
    fclose(fid)
    Et ça marche toujours pas.

    J'ai ça:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    >> new
     
    fid =
     
         3
     
     
    ans =
     
         0


    J'ai aussi essayé celui là:


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    %charger le fichier
    a=load('/Users/********/Desktop/A.txt')
    
    %lire les 4 premières colonnes, ignorer les 4 premières lignes
    b=textscan ('a', '%d %d %d %d','headerLines', 4)

    Mais j'ai ça:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    a =
     
         5     2     7     2
         ..
     
    b = 
     
        [0x1 int32]    [0x1 int32]    [0x1 int32]    [0x1 int32]

    En fait j'ai du mal à lire et comprendre l'aide

  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
    Bonjour,

    textread et textscan permettent de lire directement dans un fichier, alors que tu essaies de les utiliser sur un nom de variable (filename = nom du fichier).

    De plus tu as déjà chargé tes données avec load, il te suffit juste de sélectionner les lignes que tu souhaites :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    a=load('/Users/********/Desktop/A.txt')
    b = a(4+1:end,:);
    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
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par Laurent3131 Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    %ouvrir le fichier
    fid=fopen('/Users/++++++/Desktop/A.txt')
     
    %lire les 4 premières colonnes, ignorer les 4 premières lignes
    b = textscan(fid, '%d %d %d %d', 'headerLines',4);
     
    %fermer le fichier
    fclose(fid)
    Et ça marche toujours pas.
    As-tu regardé le contenu de ta variable b ?

  6. #6
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    Avril 2012
    Messages
    33
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Australie

    Informations professionnelles :
    Secteur : Enseignement

    Informations forums :
    Inscription : Avril 2012
    Messages : 33
    Points : 10
    Points
    10
    Par défaut
    Merci Magelan

    Maintenant je veux faire pareil mais les 2 premières lignes de mon fichier txt sont des lettres ... Donc il me semble que je dois utiliser textscan n'est ce pas ?

    J'ai utiliser ce code mais ça marche pas ...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    %ouvrir le fichier
    fid=fopen('/Users/++++++/Desktop/A.txt')
     
    %lire les 4 premières colonnes, ignorer les 2 premières lignes
    b = textscan(fid, '%d %d %d %d', 'headerLines',2);
     
    %fermer le fichier
    fclose(fid)

  7. #7
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par Laurent3131 Voir le message
    Maintenant je veux faire pareil mais les 2 premières lignes de mon fichier txt sont des lettres ... Donc il me semble que je dois utiliser textscan n'est ce pas ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    %ouvrir le fichier
    fid=fopen('/Users/++++++/Desktop/A.txt')
    
    %lire les 4 premières colonnes, ignorer les 4 premières lignes
    b = textscan(fid, '%d %d %d %d', 'headerLines',4);
    
    %fermer le fichier
    fclose(fid)

  8. #8
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    Avril 2012
    Messages
    33
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Australie

    Informations professionnelles :
    Secteur : Enseignement

    Informations forums :
    Inscription : Avril 2012
    Messages : 33
    Points : 10
    Points
    10
    Par défaut
    En fait j'ai édité mon message pendant que tu écrivais le tien ...

    Ca marche toujours pas

  9. #9
    Invité
    Invité(e)
    Par défaut
    Mais encore, quel est le comportement observé ?

  10. #10
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    Avril 2012
    Messages
    33
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Australie

    Informations professionnelles :
    Secteur : Enseignement

    Informations forums :
    Inscription : Avril 2012
    Messages : 33
    Points : 10
    Points
    10
    Par défaut
    J'ai ce message d'erreur :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
     
    >> Untitled2
     
    fid =
     
        -1
     
    Error using textscan
    Invalid file identifier.  Use fopen to generate a valid file identifier.
     
    Error in Untitled2 (line 5)
    b = textscan(fid, '%d %d %d %d', 'headerLines',1);

  11. #11
    Invité
    Invité(e)
    Par défaut
    Vérifie le chemin de ton fichier.

  12. #12
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    Avril 2012
    Messages
    33
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Australie

    Informations professionnelles :
    Secteur : Enseignement

    Informations forums :
    Inscription : Avril 2012
    Messages : 33
    Points : 10
    Points
    10
    Par défaut
    Je n'ai plus de message d'erreur mais j'ai ceci:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    >> Untitled2
     
    fid =
     
         3
     
     
    ans =
     
         0
    Or mon fichier est comme ça:

    A A A A
    B B B B
    1 2 3 4
    4 5 6 7
    ...

    Donc j'aimerai avoir :

    1 2 3 4
    4 5 6 7
    ...

  13. #13
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par Winjerome Voir le message
    As-tu regardé le contenu de ta variable b ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    fid=fopen('/Users/++++++/Desktop/A.txt') % retourne la valeur de l'identifiant fid
    
    %lire les 4 premières colonnes, ignorer les 4 premières lignes
    b = textscan(fid, '%d %d %d %d', 'headerLines',4); % retourne le contenu de ton fichier 
    
    %fermer le fichier
    fclose(fid) % retourne 0 si le fichier s'est bien fermé

  14. #14
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    Avril 2012
    Messages
    33
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Australie

    Informations professionnelles :
    Secteur : Enseignement

    Informations forums :
    Inscription : Avril 2012
    Messages : 33
    Points : 10
    Points
    10
    Par défaut
    Merci de ta patience et de tes explications, je commence un peu à comprendre...

    J'ai donc supprimé le fclose(fid) et j'ai ceci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    fid =
     
         4
     
    b = 
     
        [5x1 int32]    [5x1 int32]    [5x1 int32]    [5x1 int32]
    Que signifie : "[5x1 int32] [5x1 int32] [5x1 int32] [5x1 int32]" ?

  15. #15
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par Laurent3131 Voir le message
    J'ai donc supprimé le fclose(fid)
    Surtout pas malheureux ! Cette ligne est essentielle.
    Voir Tableaux de cellules

  16. #16
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    Avril 2012
    Messages
    33
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Australie

    Informations professionnelles :
    Secteur : Enseignement

    Informations forums :
    Inscription : Avril 2012
    Messages : 33
    Points : 10
    Points
    10
    Par défaut
    Merci pour le lien :cool:

    Donc si j'ai bien compris: vu que j'ai 4 colonnes et 6 lignes dans chaque colonne et que mon code ignore la première ligne, ça me donne " [5x1 int32] [5x1 int32] [5x1 int32] [5x1 int32]".

    Maintenant comment je fais pour afficher mes 5 lignes et 4 colonnes dans mon fenêtre de commande ?

  17. #17
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par Laurent3131 Voir le message
    Merci pour le lien :cool:
    Que tu as lu bien entendu

  18. #18
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    Avril 2012
    Messages
    33
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Australie

    Informations professionnelles :
    Secteur : Enseignement

    Informations forums :
    Inscription : Avril 2012
    Messages : 33
    Points : 10
    Points
    10
    Par défaut
    J'avais pas vu la différence entre "{}" et "()", j'avais mi "()"

    Merci pour ton aide Jerome!

  19. #19
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    Avril 2012
    Messages
    33
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Australie

    Informations professionnelles :
    Secteur : Enseignement

    Informations forums :
    Inscription : Avril 2012
    Messages : 33
    Points : 10
    Points
    10
    Par défaut
    Dernière question

    Mon code marche bien et il m'affiche mon .txt comme ça:

    b =

    [5x1 int32] [5x1 int32] [5x1 int32] [5x1 int32]


    ans =

    2
    8
    0
    1
    2


    ans =

    2
    7
    1
    4
    4


    ans =

    1
    8
    3
    7
    5


    ans =

    4
    7
    9
    9
    6

    Il y'a t il un moyen de chercher la valeur max de chaque colonne (ans) ? Je sais faire dans une matrice mais pas avec cette disposition.

    Il faudrait peut-être que mon code affiche une matrice comme dans l'exemple du lien que tu m'as donné mais je sais pas le faire

    Voici mon code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    %ouvrir le fichier
    fid=fopen('/Users/seitzlaurent/Desktop/A.txt')
     
    %lire les 4 premières colonnes, ignorer les 4 premières lignes
    b = textscan(fid, '%d %d %d %d', 'headerLines',2)
    b{1:4}

  20. #20
    Invité
    Invité(e)
    Par défaut
    Tu es sûr d'avoir lu tout mon lien ?

    Il y a une autre manière :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    b = textscan(fid, '%d %d %d %d', 'headerLines',4,'CollectOutput',true)
    Ceci devrait te faciliter la vie

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. Supprimer les x premières lignes
    Par gsacilot dans le forum VBA Access
    Réponses: 3
    Dernier message: 05/10/2007, 22h51
  2. Réponses: 8
    Dernier message: 03/07/2007, 18h26
  3. Afficher les 10 premières lignes d'un rapport
    Par redoute dans le forum Deski
    Réponses: 4
    Dernier message: 20/04/2007, 16h02
  4. ETAT - Ignorer les sauts de ligne dans un champ mémo
    Par superseba888 dans le forum Access
    Réponses: 4
    Dernier message: 14/08/2006, 02h27
  5. Récupérer les 50 premières lignes du requête
    Par oceanediana dans le forum Requêtes et SQL.
    Réponses: 4
    Dernier message: 11/08/2006, 11h15

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