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 lire les colonnes de fichiers dont le nom dépend de variables ?


Sujet :

MATLAB

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    19
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2007
    Messages : 19
    Points : 18
    Points
    18
    Par défaut Comment lire les colonnes de fichiers dont le nom dépend de variables ?
    Bonjour à tous et toutes,

    Je fais mes tous premiers pas avec MATLAB.
    Je veux tracer un grand nombre de figures. Du coup, je souhaiterai opter pour faire des boucles sur l'ensemble des noms fichiers à lire afin d'obtenir l'ensemble des figures sans trop forcer de la moulinette.

    Voilà, en simplifié, comment je démarre :
    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
     
    for X=0.70:0.03:0.73
    for Z=0.004:0.004:0.012
    for ov=0.00:0.20:0.20
     
    filename1 = sprintf('m1.00X%1.2fZ%1.3fa2.00ov%1.2fG_rad_D0-sum.txt',X,Z,ov);
    filename2 = sprintf('m1.05X%1.2fZ%1.3fa2.00ov%1.2fG_rad_D0-sum.txt',X,Z,ov);
     
    % ICI J'AIMERAI LIRE LES COLONNES 3, 4 ET 5 DE MES FICHIERS
     
    plot(T1,L1,'k','LineWidth',1);
    plot(T2,L2,'k','LineWidth',1);
    end
    end
    end
    Mais après ça, je n'arrive pas à lire les variables de mes fichiers, que ce soit avec textread, textscan, fopen ...


    Voici la structure de mes fichiers. Je n'ai besoin que des colonnes 3, 4 et 5. Bien évidemment, les lignes commençant par # sont des lignes de commentaire.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    # m1.00X0.70Z0.004a2.00ov0.00G_rad_D0
    #
    #  model                            num      age           log(Te)         log(L/Lo)          Xc         Lg/L           logg           R/Ro           log(Tc)
    #
     m1.00X0.70Z0.004a2.00ov0.00G_rad_D   0    0.00000E+00    3.66202E+00    1.64945E+00    7.00000E-01    9.99846E-01    2.38978E+00    1.05745E+01    5.88475E+00
     m1.00X0.70Z0.004a2.00ov0.00G_rad_D   1    2.15190E+03    3.66757E+00    1.60324E+00    7.00000E-01    9.99420E-01    2.45817E+00    9.77377E+00    5.91749E+00
     m1.00X0.70Z0.004a2.00ov0.00G_rad_D   2    3.99507E+03    3.67211E+00    1.57272E+00    7.00000E-01    9.98541E-01    2.50687E+00    9.24092E+00    5.94085E+00
     m1.00X0.70Z0.004a2.00ov0.00G_rad_D   3    6.10574E+03    3.67641E+00    1.54101E+00    7.00000E-01    9.96345E-01    2.55579E+00    8.73484E+00    5.96436E+00
     m1.00X0.70Z0.004a2.00ov0.00G_rad_D   4    8.62806E+03    3.68062E+00    1.50686E+00    7.00000E-01    9.90574E-01    2.60676E+00    8.23697E+00    5.98888E+00
    Auriez-vous une idée pour que je puisse me dépatouiller ?
    Merci beaucoup d'avance !

    Mehdi

  2. #2
    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,
    Citation Envoyé par mehdi_oca Voir le message
    Mais après ça, je n'arrive pas à lire les variables de mes fichiers, que ce soit avec textread, textscan, fopen ...
    Peux-tu nous montrer ce que tu as essayé de coder avec textscan?
    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.

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    19
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2007
    Messages : 19
    Points : 18
    Points
    18
    Par défaut
    Alors, au départ j'avais tenté le coup avec textread, et ça donnait quelque chose comme
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    [name2,num2,age2,T2,L2,x2,f2,g2,r2,rr2]=textread(filename2,'%s%n%n%n%n%n%n%n%n%n','commentstyle','shell');
    Puis avec textscan
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    F1=textscan(filename1,'%s%n%n%n%n%n%n%n%n%n','delimiter',' ','commentstyle','#');
    C'est tout vilain, c'est certainement pas du tout comme ça qu'il faut faire, mais je débarque un peu ...
    Merci !

  4. #4
    Invité
    Invité(e)
    Par défaut
    Bonjour

    Citation Envoyé par mehdi_oca Voir le message
    Mais après ça, je n'arrive pas à lire les variables de mes fichiers, que ce soit avec textread, textscan, fopen ...
    Pourrais-tu expliciter ce que tu entends par là?
    • Ton code avec TEXTREAD semble correct...
    • Pour ce qui est de TEXTSCAN, attention d'utiliser FOPEN/FCLOSE avec, c'est alors l'identifiant du fichier retourné par FOPEN qui est rentré au lieu du nom du fichier:
      Code : Sélectionner tout - Visualiser dans une fenêtre à part
      1
      2
      3
      fid = fopen(filename1,'rt');
      F1=textscan(fid,'%s%n%n%n%n%n%n%n%n%n','delimiter',' ','commentstyle','#');
      fclose(fid);

Discussions similaires

  1. Réponses: 3
    Dernier message: 05/12/2008, 23h14
  2. Réponses: 1
    Dernier message: 01/08/2008, 20h12
  3. Comment lire les fichiers dont l'extension est .tex ?
    Par condor_01 dans le forum Ubuntu
    Réponses: 3
    Dernier message: 19/10/2007, 16h24
  4. Réponses: 5
    Dernier message: 16/03/2005, 22h17
  5. Réponses: 5
    Dernier message: 20/08/2002, 18h01

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