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 :

[load] prendre en compte les sauts de ligne dans un fichier texte


Sujet :

MATLAB

  1. #1
    Membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Novembre 2011
    Messages
    87
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 31
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2011
    Messages : 87
    Points : 49
    Points
    49
    Par défaut [load] prendre en compte les sauts de ligne dans un fichier texte
    Bonjour,

    je ne trouve pas comment prendre en compte les sauts de lignes dans un fichier lorsqu'on le lit à l'aide de la fonction load, pouvez vous m'aider ?

    Détails : j'ai un fichier de type :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    1.2 2.3 3.4
    2.2 2.2 2.2 
     
    4.3 3.3 3.3
    4.3 2.3 4.4
    4.4 2.3 4.4
    12.0 0.0 3.0
     
    4.3 2.3 4.4
     
    4.4 2.3 4.4
    12.0 0.0 3.0
    Et j'aimerais enregistrer les données dans un tableau type "B{4}[3][x]" par exemple (4 = nombre d'ensemble, 3 =nombre colonnes, x= nombre d'objet de la colonne).

    Pourriez vous m'aider ?

    Merci!

    Misa

  2. #2
    Rédacteur/Modérateur

    Avatar de Jerome Briot
    Homme Profil pro
    Freelance mécatronique - Conseil, conception et formation
    Inscrit en
    Novembre 2006
    Messages
    20 302
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Freelance mécatronique - Conseil, conception et formation

    Informations forums :
    Inscription : Novembre 2006
    Messages : 20 302
    Points : 52 882
    Points
    52 882
    Par défaut
    C'est moins simple qu'il n'y parait…

    Une solution :

    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
    19
    20
    21
    22
    23
    24
    25
    26
    27
    fid = fopen('data.txt', 'rt');
     
    numBlock = 1;
    numLine = 0;
    n = 0;
     
    while(1)
     
        if feof(fid)
            break;
        end
     
        str = fgetl(fid);
        str = deblank(str);
        n = n+1;
     
        if isempty(str)
            numBlock = numBlock + 1;
            numLine = 0;
        else
            numLine = numLine+1;
            B{numBlock}(numLine,:) = str2num(str); 
        end
     
    end
     
    fclose(fid);
    ou encore :
    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
    19
    fid = fopen('data.txt', 'r');
    X = textscan(fid, '%s', 'delimiter', '\n');
    fclose(fid);
     
    X = cellfun(@str2num, X{1}, 'UniformOutput', false);
     
    numBlock = 1;
    numLine = 0;
    for n = 1:size(X, 1)
     
        if isempty(X{n})
            numBlock = numBlock + 1;
            numLine = 0;
        else
            numLine = numLine+1;
            B{numBlock}(numLine,:) = X{n}; 
        end
     
    end
    Ingénieur indépendant en mécatronique - Conseil, conception et formation
    • Conception mécanique (Autodesk Fusion 360)
    • Impression 3D (Ultimaker)
    • Développement informatique (Python, MATLAB, C)
    • Programmation de microcontrôleur (Microchip PIC, ESP32, Raspberry Pi, Arduino…)

    « J'étais le meilleur ami que le vieux Jim avait au monde. Il fallait choisir. J'ai réfléchi un moment, puis je me suis dit : "Tant pis ! J'irai en enfer" » (Saint Huck)

  3. #3
    Membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Novembre 2011
    Messages
    87
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 31
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2011
    Messages : 87
    Points : 49
    Points
    49
    Par défaut
    Ça fonctionne parfaitement !
    De plus grâce aux deux exemples j'ai pu apprendre des fonctions bien utiles (surtout cellfun).

    Merci beaucoup !

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

Discussions similaires

  1. Supprimer les sauts de lignes dans un fichier
    Par Tornade8912 dans le forum VB.NET
    Réponses: 2
    Dernier message: 16/03/2015, 13h49
  2. Prendre en compte les sauts de ligne de la saisie
    Par madmax57 dans le forum Langage
    Réponses: 6
    Dernier message: 09/07/2008, 12h00
  3. Réponses: 2
    Dernier message: 28/05/2007, 19h46
  4. Réponses: 7
    Dernier message: 28/06/2006, 13h31
  5. [MFC] Saut de ligne dans un fichier texte
    Par le-makinero dans le forum MFC
    Réponses: 2
    Dernier message: 18/04/2006, 10h40

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