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 :

[textread] Arrêter la lecture à une ligne donnée


Sujet :

MATLAB

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    34
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 34
    Points : 15
    Points
    15
    Par défaut [textread] Arrêter la lecture à une ligne donnée
    Bonjour,

    voilà j'aimerai simplement savoir si on peut arrêter la fonction textread à une ligne donnée, connaissant bien évidemment le numéro de la ligne.

    Merci d'avance pour votre réponse

    Mathylde

  2. #2
    Expert éminent sénior
    Avatar de Caro-Line
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    9 458
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 9 458
    Points : 14 830
    Points
    14 830
    Par défaut
    A priori je dirais non.
    Et dans ce cas les mieux c'est de faire de la lecture ligne par ligne avec les fonctions dites de bas-niveau : fopen, fgetl, fclose.
    Si vraiment il y a beaucoup de lignes à la fin à ignorer tu gagneras ainsi beaucoup en performances (vitesse et mémoire).
    Sinon tu lis tout et tu supprimes après.
    Règles du Forum

    Adepte de la maïeutique

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    769
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Octobre 2007
    Messages : 769
    Points : 726
    Points
    726
    Par défaut
    Si tu lis la description de la fonction textread :

    [A,B,C,...] = textread('filename','format') reads data from the file 'filename' into the variables A,B,C, and so on, using the specified format, until the entire file is read. textread is useful for reading text files with a known format. textread handles both fixed and free format files.

    Note When reading large text files, reading from a specific point in a file, or reading file data into a cell array rather than multiple outputs, you might prefer to use the textscan function.
    Il te dit bien qu'il lit tout le fichier...

    La note devrait satisfaire peut être tes besoins...

    Voilà...
    INCIA : MATLAB R2014a sous MAC OS 10.9.3

    Nous piétinerons éternellement aux frontières de l'Inconnu, cherchant à comprendre ce qui restera toujours incompréhensible. Et c'est précisément cela qui fait des nous des hommes. Isaac Asimov

  4. #4
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    34
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 34
    Points : 15
    Points
    15
    Par défaut
    Merci pour cette réponse mais alors comment fait on pour supprimer des lignes d'un tableau?

    Merci

  5. #5
    Expert éminent sénior
    Avatar de Caro-Line
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    9 458
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 9 458
    Points : 14 830
    Points
    14 830
    Par défaut
    ça dépend du format du tableau.
    Montre nous à quoi il ressemble :
    - sa taille
    - son type (obtenu avec la fonction CLASS ou WHOS)

    Mais en gros un exemple pour un tableau de cellules :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    T={'a','b';'c','d';'a','b';'c','d';'a','b';'c','d'};
    %enlever à partir de la ligne 3 inclue
    T(3:end)=[];
    Règles du Forum

    Adepte de la maïeutique

  6. #6
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    34
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 34
    Points : 15
    Points
    15
    Par défaut
    Mon tableau est énorme, 19 colonnes et plus de 1000 lignes, j'aimerai ne conserver que les 1000 premières lignes:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    >> class X2bis
     
    ans =
     
    char
     
    >> whos X2bis
      Name        Size                    Bytes  Class
     
      X2bis    1157x19                   175864  double array
     
    Grand total is 21983 elements using 175864 bytes

  7. #7
    Expert éminent sénior
    Avatar de Caro-Line
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    9 458
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 9 458
    Points : 14 830
    Points
    14 830
    Par défaut
    Donc en modifiant un peu mon exemple :devrait fonctionner

    [EDIT]Pour l'utilisation de la fonction class :Là il retourne char car 'X2bis' (le nom de la variable) est un char
    Règles du Forum

    Adepte de la maïeutique

  8. #8
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    34
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 34
    Points : 15
    Points
    15
    Par défaut
    Merci pour ta réponse, effectivement cela à bien marché.

    Mais désormais, je n'arrive pas à tracer un graphique si j'ai apparemment rétrécie le nombre de mes lignes.

    Je ne comprend pas:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    ??? Cell contents reference from a non-cell array object.
     
    Error in ==> Simulation at 49
    plot(X3{1},X1bis{4},'g')
    de plus:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    class (X1bis)
     
    ans =
     
    double
    Je comprend pas, aidez moi SVP.

    Mathylde

  9. #9
    Expert éminent sénior
    Avatar de Caro-Line
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    9 458
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 9 458
    Points : 14 830
    Points
    14 830
    Par défaut
    Comme te le retournes la fonction CLASS, X1bis est un tableau de double et non pas de cellules donc tu ne peux pas utiliser les {}.
    A quoi penses-tu que devrait correspondre X1bis{4} ?
    Règles du Forum

    Adepte de la maïeutique

  10. #10
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    34
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 34
    Points : 15
    Points
    15
    Par défaut
    C'est juste que je veux tracer la première colonne du tableau X3 en fonction de la quatrième colonne du tableau X4, c'est aussi simple que ça.

  11. #11
    Expert éminent sénior
    Avatar de Caro-Line
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    9 458
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 9 458
    Points : 14 830
    Points
    14 830
    Par défaut
    Pour bien comprendre ce que tu manipules, tu peux continuer à utiliser la commande whos.
    Comme tu changes le nom de tes variables à chaque post je suis un peu perdue mais bon.
    Si X est un tableau de doubles (ou une matrice) de taille n*m, accéder à la ième colonne se fait ainsi :
    Règles du Forum

    Adepte de la maïeutique

Discussions similaires

  1. Acceder a une ligne donnée d'un fichier texte
    Par mcorvaisier dans le forum VB 6 et antérieur
    Réponses: 2
    Dernier message: 11/02/2009, 10h00
  2. supprimer une ligne donnée d'un array
    Par BYALI dans le forum Langage
    Réponses: 6
    Dernier message: 16/07/2008, 15h13
  3. Réponses: 12
    Dernier message: 05/06/2008, 15h17
  4. lire une ligne donnée
    Par capucine1983 dans le forum Entrée/Sortie
    Réponses: 6
    Dernier message: 15/07/2007, 02h00
  5. [MySQL] Se placer à une ligne donnée
    Par Oberown dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 11/09/2006, 10h23

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