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 :

modifier une ligne dans un fichier .txt


Sujet :

MATLAB

  1. #1
    Membre à l'essai
    Femme Profil pro
    Informatique
    Inscrit en
    Septembre 2011
    Messages
    27
    Détails du profil
    Informations personnelles :
    Sexe : Femme

    Informations professionnelles :
    Activité : Informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2011
    Messages : 27
    Points : 20
    Points
    20
    Par défaut modifier une ligne dans un fichier .txt
    Bonsoir tout le monde,
    Ma question est comment modifier les lignes dans un fichier .txt par matlab.
    Mon fichier .txt est sous la forme suivante :
    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
     
    0.000000 3.000000 0.000000
    1.000000 3.000000 1.000000
    2.000000 2.000000 0.000000
    2.000000 2.000000 1.000000
    1.000000 3.000000 1.000000
    1.000000 3.000000 0.001000
    2.000000 2.000000 0.000000
    1.000000 3.000000 0.001000
    1.000000 2.000000 0.000000
    2.000000 2.000000 0.000000
    3.000000 2.000000 0.000000
    2.000000 2.000000 1.000000
    2.000000 2.000000 0.000000
    3.000000 2.000000 1.000000
    2.000000 2.000000 1.000000
    3.000000 2.000000 0.000000
    4.000000 2.000000 0.000000
    3.000000 2.000000 1.000000
    3.000000 2.000000 0.000000
    4.000000 2.000000 1.000000
    3.000000 2.000000 1.000000
    4.000000 2.000000 0.000000
    ...
    je veux que tous lignes :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    1.000000 3.000000 1.000000
    deviennent :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    2.000000 4.000000 1.000000
    comment faire?
    Merci d'avance

  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 : 53 160
    Points
    53 160
    Par défaut
    Tu lis l'ensemble du fichier avec dlmread.

    Tu modifies les valeurs des deux premières colonnes.

    Tu utilises dlmwrite pour écrire les valeurs modifiées dans un nouveau fichier ou dans le même fichier si tu n'as pas besoin de conserver les données initiales.
    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 à l'essai
    Femme Profil pro
    Informatique
    Inscrit en
    Septembre 2011
    Messages
    27
    Détails du profil
    Informations personnelles :
    Sexe : Femme

    Informations professionnelles :
    Activité : Informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2011
    Messages : 27
    Points : 20
    Points
    20
    Par défaut
    pour la lecture j'utilise :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    [X,Y,Z]=textread(Nom1,'%f %f %f');
    puisque je dois enregistrer les valeurs et car le nombre des lignes est variable.
    concernant dlmwrite j'essaie de faire comme suit :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    A=dlmread('Saved.txt',' ', [1 0 1 1] );
    dlmwrite('Saved.txt',[2.000000 4.000000],' ');
    Mais le fichier .txt devient :
    par contre je veux que chaque vecteur A devient [2.000000 4.000000]

    Comment faire?

  4. #4
    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 : 53 160
    Points
    53 160
    Par défaut
    Pourquoi ne pas lire tout le contenu du fichier texte en une seule fois ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    A = dlmread('Saved.txt');
    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)

  5. #5
    Membre à l'essai
    Femme Profil pro
    Informatique
    Inscrit en
    Septembre 2011
    Messages
    27
    Détails du profil
    Informations personnelles :
    Sexe : Femme

    Informations professionnelles :
    Activité : Informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2011
    Messages : 27
    Points : 20
    Points
    20
    Par défaut
    Oui je peux,
    mais mon problème est comment faire les modifications sur cette matrice A?

  6. #6
    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 : 53 160
    Points
    53 160
    Par défaut
    Ton explication sur ce que tu souhaites modifier n'est pas très claire...
    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)

  7. #7
    Membre à l'essai
    Femme Profil pro
    Informatique
    Inscrit en
    Septembre 2011
    Messages
    27
    Détails du profil
    Informations personnelles :
    Sexe : Femme

    Informations professionnelles :
    Activité : Informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2011
    Messages : 27
    Points : 20
    Points
    20
    Par défaut
    Voici une partie de mon fichier .txt qui contient les coordonnées des points en 3D (X,Y,Z):
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    0.000000 3.000000 0.000000
    1.000000 3.000000 1.000000
    2.000000 2.000000 0.000000
    2.000000 2.000000 1.000000
    1.000000 3.000000 1.000000
    1.000000 3.000000 0.001000
    2.000000 2.000000 0.000000
    1.000000 3.000000 0.001000
    ...
    je veux modifier les X et Y de la point ayant les coordonnées suivantes :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1.000000 3.000000 1.000000
    pour devenir :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    2.000000 4.000000 1.000000
    je ne sais pas comment faire pour les modifier dans le fichier .txt

  8. #8
    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 : 53 160
    Points
    53 160
    Par défaut
    Montre nous ce que tu as essayé de faire, même si c'est faux
    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)

  9. #9
    Membre à l'essai
    Femme Profil pro
    Informatique
    Inscrit en
    Septembre 2011
    Messages
    27
    Détails du profil
    Informations personnelles :
    Sexe : Femme

    Informations professionnelles :
    Activité : Informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2011
    Messages : 27
    Points : 20
    Points
    20
    Par défaut
    j'essaie à chaque fois de lire la ligne que je souhaite modifier et puis modifier le fichier avec dlmwrite avec la code suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    A=dlmread('Saved.txt',' ', [1 0 1 1] );
    dlmwrite('Saved.txt',[2.000000 4.000000],' ');
    mais le fichier devient une seul ligne et tous les autre lignes disparaissent :

  10. #10
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par Dut Voir le message
    Pourquoi ne pas lire tout le contenu du fichier texte en une seule fois ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    A = dlmread('Saved.txt');
    Citation Envoyé par javjouv2011 Voir le message
    mais mon problème est comment faire les modifications sur cette matrice A?
    Autant faudrait-il avoir une matrice...

    Avec l'extrait de fichier que tu nous montres, la ligne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    A=dlmread('Saved.txt',' ', [1 0 1 1] );
    renvoie seulement ceci :
    Tu ne fais que lire ces valeurs en rouge :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    0.000000 3.000000 0.000000
    1.000000 3.000000 1.000000
    2.000000 2.000000 0.000000
    2.000000 2.000000 1.000000
    1.000000 3.000000 1.000000
    1.000000 3.000000 0.001000
    2.000000 2.000000 0.000000
    1.000000 3.000000 0.001000
    Et dans le sens inverse, avec cette ligne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    dlmwrite('Saved.txt',[2.000000 4.000000],' ');
    tu écrases toutes les valeurs présentes pour n'y mettre que 2 et 4.

    Donc :
    1. commence par charger tout le fichier, comme te l'a montré Dut ;
    2. change ce tableau obtenu selon tes critères, la fonction ismember avec l'option 'rows' pourra t'y aider ;
    3. puis sauvegarde de même tableau entièrement.

  11. #11
    Membre à l'essai
    Femme Profil pro
    Informatique
    Inscrit en
    Septembre 2011
    Messages
    27
    Détails du profil
    Informations personnelles :
    Sexe : Femme

    Informations professionnelles :
    Activité : Informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2011
    Messages : 27
    Points : 20
    Points
    20
    Par défaut
    Merciiiii Winjerome et Dut ...

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

Discussions similaires

  1. code java pour modifier une ligne dans un fichier txt
    Par pacomou dans le forum Général Java
    Réponses: 1
    Dernier message: 03/09/2009, 16h23
  2. Supprimer une ligne dans un fichier .txt
    Par lince102 dans le forum MATLAB
    Réponses: 12
    Dernier message: 31/01/2008, 11h19
  3. Modifier une ligne dans un fichier txt en java
    Par nihad510 dans le forum Entrée/Sortie
    Réponses: 2
    Dernier message: 09/10/2007, 23h08
  4. Suppression d'une ligne dans un fichier txt
    Par EvaristeGaloisBis dans le forum VB 6 et antérieur
    Réponses: 2
    Dernier message: 21/07/2007, 18h58
  5. suprimmer une ligne dans un fichier .txt
    Par Totuch dans le forum Windows Forms
    Réponses: 1
    Dernier message: 06/06/2007, 12h28

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