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 :

[Débutant] Lire un .txt ayant deux lignes de texte puis 2 nombres par ligne


Sujet :

MATLAB

  1. #1
    Membre régulier
    Inscrit en
    Mars 2006
    Messages
    342
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 342
    Points : 107
    Points
    107
    Par défaut [Débutant] Lire un .txt ayant deux lignes de texte puis 2 nombres par ligne
    Coucou,

    voilà j'ai un problème tout con. Je n'ai pas de problème pour lire/écrire quand mon fichier txt n'est composé que de nombres (2 nombres par ligne); par contre, je n'arrive pas à lire les valeurs lorsque mon fichier contient 2 lignes de texte avant mes valeurs.

    Basiquement, dans le code suivant, data (qui doit contenir mes valeurs) ne contient plus rien.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
        fid=fopen('sub.txt','r') ;  
        data=fscanf(fid,'%g %g',[2 inf]);
        data = data'
        fclose(fid);
    (Si je place la commande length(data) il me retourne zero.)

    Comment éviter ce problème svp.

    Merci

    EDIT : J'oubliais, je me moque des deux lignes de texte, je ne désire pas les lire.

  2. #2
    Membre éprouvé Avatar de Mathusalem
    Profil pro
    IT moa
    Inscrit en
    Décembre 2003
    Messages
    1 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : IT moa

    Informations forums :
    Inscription : Décembre 2003
    Messages : 1 008
    Points : 1 067
    Points
    1 067
    Par défaut
    de manière bourrine, je mettrais un try... catch autour de ton fscanf.

    Mais il y a sûrement mieux

  3. #3
    Expert confirmé
    Avatar de tug83
    Homme Profil pro
    MATLAB Geek !
    Inscrit en
    Juin 2006
    Messages
    1 781
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Alpes de Haute Provence (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : MATLAB Geek !
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2006
    Messages : 1 781
    Points : 4 039
    Points
    4 039
    Par défaut
    si t'as du texte avant tes valeurs voici ce qu'il te faut:http://www.mathworks.com/support/tec...1400/1402.html
    MATLAB 8.2 (R2013b)

    le blog des MATLAB geeks

  4. #4
    Membre régulier
    Inscrit en
    Mars 2006
    Messages
    342
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 342
    Points : 107
    Points
    107
    Par défaut
    Salut les gars,

    merci de m aider.

    Je pensais tout simplement que je passais a coter d un truc tout simple, mais visiblement avec matlab, c po si easy pour traiter ca.

    Merci pour le lien tug83 (en fait je l avais trouvé, mais prendre un truc si gros, pour traiter un cas tout con, je trouvais ca bizarre. Puis bon, j ai pas tout compris a la fonction. J ai compris comment l utiliser, mais je preferrerais ecrire mon truc ^^

    Pour le try/catch, je ne suis pas sur de comprendre comment tu pourrais l appliquer ici

    Bref ... je seche toujours ...

  5. #5
    Vol
    Vol est déconnecté
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    42
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 42
    Points : 38
    Points
    38
    Par défaut
    J'utilise ceci pour sauter une ligne:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    fgetl(fid);    % Récupérer la ligne sans la stocker
    Tu pourrais essayer ceci:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    fid=fopen('sub.txt','r');
     
    % Saute les deux permière lignes
    fgetl(fid);
    fgetl(fid);
     
    data=fscanf(fid,'%g %g',[2 inf]);
    data = data';
     
    fclose(fid);

  6. #6
    Membre régulier
    Inscrit en
    Mars 2006
    Messages
    342
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 342
    Points : 107
    Points
    107
    Par défaut
    Grand merci a toi Vol,

    C exactement ce que je voulais ^^

    Merci merci

  7. #7
    Membre éclairé
    Avatar de Kangourou
    Profil pro
    Inscrit en
    Mars 2003
    Messages
    579
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2003
    Messages : 579
    Points : 859
    Points
    859
    Par défaut
    salut,

    Je me suis permis de rajouter un message dans la Faq Matlab concernant ce message, car c'est un probleme qu'on rencontre tout de meme assez frequemment...

    Merci a tug83 pour le lien.

    A+

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 22/03/2011, 23h21
  2. probleme dans une fonction qui affiche le nombre de ligne du texte
    Par étoile de mer dans le forum Débuter
    Réponses: 7
    Dernier message: 19/09/2008, 08h25
  3. un controle text avec bkgrnd diff par ligne
    Par hpfx dans le forum VB 6 et antérieur
    Réponses: 16
    Dernier message: 23/02/2008, 18h14
  4. Lecture fichier texte avec un nombre de lignes à ignorer
    Par TravelMate dans le forum Langage
    Réponses: 20
    Dernier message: 02/08/2006, 11h59
  5. JTextArea nombre de lignes de texte
    Par groupe51 dans le forum AWT/Swing
    Réponses: 2
    Dernier message: 30/07/2006, 15h04

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