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 :

Comment charger une ligne sur deux d'un doc texte avec fscanf


Sujet :

MATLAB

  1. #1
    Candidat au Club
    Inscrit en
    Octobre 2006
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Octobre 2006
    Messages : 5
    Points : 2
    Points
    2
    Par défaut Comment charger une ligne sur deux d'un doc texte avec fscanf
    Bonjour,

    Mon problème porte sur la fonction fscanf, que je voudrais utiliser dans un programme Matlab, mais on m'a dit que c'était la même utilisation que sous C.

    Mon problème est le suivant : j'ai un fichier de données avec une ligne sur deux qui est du texte. Je sais comment récupérer mes données mais je veux me débarrasser du texte.

    J'ai ce petit programme qui me permet de supprimer les Xpremières lignes mais je n'ai pas réussi à le modifier pour ne prendre qu'une ligne sur deux.

    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
    clear all
    close all
     
     
    fid=fopen('cube.txt','r') ; 
     
    for i=1:3
            a=fgetl(fid);
            disp (a); 
    end;
     
    format long
    donnee=fscanf(fid,'%g %g %g %g %g %g %g %g',[8 inf]);
    donnee=donnee';
     
    fclose('all');
     
    disp(donnee)
    Est-ce que c'est la bonne voie ? Y a-t-il une meilleure fonction à utiliser ?

    Merci d'avance

  2. #2
    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,

    essaie de rajouterr a la fin :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    donnee = donnee(1:2:end, :);
    ou alors
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    donnee = donnee(:, 1:2:end);
    A+

  3. #3
    Candidat au Club
    Inscrit en
    Octobre 2006
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Octobre 2006
    Messages : 5
    Points : 2
    Points
    2
    Par défaut
    Ok je te remercie, ce que tu me donnes marche mais (parceque il y a toujours un mais) dans le cas où il arrive à ouvrir les données. Or dans mon cas, si je met %s il me prend chaque caractère et me le met dans une colonne. Je me retrouve avec 8colones de 1charactère. Il ne respecte pas les colones de mon document original. C'est pour ça que je pensais à une ligne de code avant le fscanf. Comme ça il ne lira que les données numériques et pas les lignes de texte.

    Qu'en penses tu? Aurais tu une meilleurs idées?

    Merci.

  4. #4
    Candidat au Club
    Inscrit en
    Octobre 2006
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Octobre 2006
    Messages : 5
    Points : 2
    Points
    2
    Par défaut
    en fait pour resumer moi problème c'est de lire un fichier comme celui ci :


    > Wave no. 1 0.010 GHz 1 1 RCS
    0.000000000000000E+00 0.000000000000000E+00 0.385339659527438
    > Wave no. 1 0.011 GHz 1 1 RCS
    0.000000000000000E+00 0.000000000000000E+00 0.466255579674065
    > Wave no. 1 0.012 GHz 1 1 RCS
    0.000000000000000E+00 0.000000000000000E+00 0.554809193268826
    > Wave no. 1 0.013 GHz 1 1 RCS
    0.000000000000000E+00 0.000000000000000E+00 0.651187398625683
    .
    .
    .


    en plus "large" mais là je l'ai simplifié. Et je ne veux récupérer que les lignes de chiffre.

    merci

  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
    Voici un thread qui répond à ta question je crois:
    http://www.developpez.net/forums/sho...d.php?t=185932

  6. #6
    Candidat au Club
    Inscrit en
    Octobre 2006
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Octobre 2006
    Messages : 5
    Points : 2
    Points
    2
    Par défaut
    en fait je l'avais déjà vu mais malheureusement cela ne marche pas car cela me permet effectivment de sauter la première ligne de texte et de récupérer la première ligne de données numériques, mais dès la seconde ligne de texte le problème recommence. J'ai eu l'idée de faire une boucle, mais je n'ai pas réussi à la concrétiser.

Discussions similaires

  1. Comment faire une condition sur deux lignes différentes ?
    Par sogelinas dans le forum SAS Base
    Réponses: 4
    Dernier message: 08/10/2014, 03h33
  2. Réponses: 1
    Dernier message: 11/11/2009, 11h55
  3. [Rave 5.0-Delphi 7] Griser une ligne sur deux
    Par Frank dans le forum Rave
    Réponses: 5
    Dernier message: 09/08/2006, 09h03
  4. [Formulaire continu] une ligne sur deux en gris
    Par genius99 dans le forum IHM
    Réponses: 7
    Dernier message: 30/10/2005, 18h52
  5. coloriser une ligne sur deux
    Par the0livier dans le forum Langage
    Réponses: 3
    Dernier message: 12/09/2005, 10h54

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