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 :

Ouvrir fichier text


Sujet :

MATLAB

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    1 002
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2008
    Messages : 1 002
    Points : 476
    Points
    476
    Par défaut Ouvrir fichier text
    Bonjour

    Voici un exemple de fichier texte que j'aimerais ouvrir avec matlab :
    3
    1.5 900 80 1800
    7 1000 335 2000
    0 1600 635 2200
    4
    1.5 900 80 1800
    6 1000 335 2000
    1 930 100 2000
    0 1600 635 2200
    2
    2 900 80 1800
    0 1600 635 2200
    le n=3 au début signifie qu'il y a 3 lignes de 4 colonnes après. Le n=4 d'après , qu'il y a 4 lignes de 4 colonnes. Bref à chaque fois ce sont des modèles différents qui comportent nx4 paramètres.
    J'aimerais un programme qui comprenne la lecture du type :
    -lire 1ere ligne > 3 > les 3 lignes x 4 colonnes suivantes correspondent à un modele > dans une matrice
    -lire la ligne suivante > 4 > les 4lignes x 4 colonnes suivantes correspondent à un model > dans nouvelle matrice
    -lire la ligne suivante > 2 > les 2lignes x 4 colonnes suivantes correspondent à un model > dans nouvelle matrice
    etc...

    Merci de votre aide.
    OS : taff > Window 7 32bit - Home > Windows 7 64bit
    Matlab : taff > v2013b - Home > r2009a

  2. #2
    Membre habitué
    Inscrit en
    Août 2009
    Messages
    129
    Détails du profil
    Informations forums :
    Inscription : Août 2009
    Messages : 129
    Points : 131
    Points
    131
    Par défaut
    est ce que tu as déjà écrit quelque chose? ou est ce que tu bloques?...

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

    il existe plusieurs méthodes, par exemple :
    • soit en important ton fichier en entier en utilisant textread ou dlmread puis il faudra séparer chaque matrice.
    • soit en utilisant les fonctions de bas niveau fopen, fgetl et fclose, cela permettrai de séparer tes données au fur et à mesure de la lecture.
    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.

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    1 002
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2008
    Messages : 1 002
    Points : 476
    Points
    476
    Par défaut
    Merci pour vos réponses.
    Oui j'aimerais comprendre une fois pour tout fgetl etc..

    alors j'utilise :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    tline = fgetl(fid)
    num_model1 = str2num(tline) ;
    while ischar(tline) ;
        tline
        tline = fgetl(fid);
    end
     
    fclose(fid);
    que j'ai trouvé dans l'aide mais j'essaye de faire des boucles pour récupérer ligne par ligne et de faire des conditions :
    -si tline = juste un entier (par exemple 3) alors mettre les 3 prochaines lignes sous formes de matrice..
    mais impossible. Je comprend pas la syntaxe même avec l'aide, ici ou sur le net...

    help?

    merci
    OS : taff > Window 7 32bit - Home > Windows 7 64bit
    Matlab : taff > v2013b - Home > r2009a

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

    Il te faut faire attention que la fonction fgetl renvoie toujours une chaîne de caractères, même si ta ligne contient des nombres.
    Donc ta condition sera toujours vérifiée.
    Tu peux par exemple utiliser la sortie de la fonction str2num pour cela.

    Une précaution à prendre:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    while ~feof(fid) && autre_condition
        % ....
    end

  6. #6
    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
    Et pour extraire une suite de nombre à partir d'une chaîne de caractères, tu peux utiliser sscanf.
    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.

Discussions similaires

  1. [XL-2007] Ouvrir fichier texte dans feuille
    Par iperkut dans le forum Macros et VBA Excel
    Réponses: 12
    Dernier message: 30/10/2009, 10h12
  2. [C# 2.0] Ouvrir fichier texte dans editeur par défaut
    Par lenoil dans le forum Windows Forms
    Réponses: 4
    Dernier message: 13/11/2007, 16h19
  3. Ouvrir Fichier texte
    Par eiffel74 dans le forum ASP
    Réponses: 3
    Dernier message: 03/04/2007, 20h18
  4. ouvrir fichier texte
    Par ac/dc dans le forum C
    Réponses: 11
    Dernier message: 19/11/2006, 17h03
  5. [FB 1.5] ouvrir fichier texte dans une ps
    Par jlf dans le forum Débuter
    Réponses: 4
    Dernier message: 16/02/2005, 20h29

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