Répondre à la discussion
Affichage des résultats 1 à 10 sur 10

Ecrire des donnees dans un fichier .txt avec MATLAB



  1. #1
    ghislaine

    Question Ecrire des donnees dans un fichier .txt avec MATLAB


    ------

    Bonjour,

    Je rencontre un petit probleme avec Matlab...
    Je souhaite ecrire des donnees dans un fichier .txt, et je ne sais pas comment faire. Il s'agit de plusieurs vecteurs, que j'aimerai ecrire a la suite, avec eventuellement des lignes de texte en plus. Pour commencer, il faudrais que je cree ce fichier, et meme ca je ne sais pas comment faire!
    J'ai deja eu l'occasion de travailler avec des fichiers image, et des fichiers de donnees .m, mais pour les fichiers .txt je ne trouve rien dans l'aide html de Matlab. Donc si vous pouviez m'eclairer de vos lumieres , ca serait fort sympathique!

    Merci beaucoup

    -----

  2. Publicité
  3. #2
    asgrim

    Re : Ecrire des donnees dans un fichier .txt avec MATLAB

    salut

    tu peux le faire avec la fonction save (tape help save pour en savoir plus)

    par exemple

    x=[0 0 1];
    y=[1 2 3];
    save 'test.txt' -ascii

    va te creer une fichier test.txt dans le répertouire courant avec le texte :
    0.0000000e+000 0.0000000e+000 1.0000000e+000
    1.0000000e+000 2.0000000e+000 3.0000000e+000

    il change de ligne d'une variable à l'autre
    save 'test.txt' -ascii -double
    va te créer la meme chose mais avec plus de chiffres (plus de précision donc)
    save 'test.txt' -ascii -double -tabs mais avec une tabulation comme séparateur

    pour ne pas sauter de ligne entre chaque vecteur , met les bout a bout : [x,y]

    pour le texte ca ne marche pas, il met les code ascii au lieu des lettres
    il doit y avoir une solution mais je ne l'ai pas la
    regarde les fonction fwrite et fopen, c'est peut etre mieux

    tcho

    asgrim
    va te creer la même chose
    La lumière a quelque chose de maléfique.
    Seules d'obscures expériences permettent de s'y initier.

  4. #3
    asgrim

    Re : Ecrire des donnees dans un fichier .txt avec MATLAB

    en fait je vais revenir sur ce que jai dit
    comme ca pourrait me servir j'ai farfopuiller et ...
    il vaut mieux utiliser fprintf

    avec le script :
    x= [0 1 2];
    y = [3 4 5];
    %ouvre un fichier ou le créé
    fid = fopen('test.txt','w');
    %écrit dans ce fichier, fid est sa reference pour matlab
    fprintf(fid,'%s\n','vecteur x');
    fprintf(fid,'%i\t %i\t %i\n',x);
    fprintf(fid,'%s\n','vecteur y');
    fprintf(fid,'%i\t %i\t %i\n',y);
    %n'oublie pas de fermer le fichier sinon tu ,ne peux pas le lire
    fclose(fid)

    tu obtient alors :

    vecteur x
    0 1 2
    vecteur y
    3 4 5

    attention si tu l'ouvre sous bloc notes il ne fait pas la miose en page et met des imboles bizarres au lieu des tab et de retour a la ligne
    mais si tu vais un copier coller tu retrouve la bonne mise en page (c ce que j'ai fait juste au dessus)

    en ajoutant des tab et des return (dans le format) tu peux le mettre en forme comme tu veux
    regarde dans l'aide
    si tes vectreur sont long trouve une astuce pour le retour a la ligne a la fin de la ligne
    asgrim
    La lumière a quelque chose de maléfique.
    Seules d'obscures expériences permettent de s'y initier.

  5. #4
    ghislaine

    Re : Ecrire des donnees dans un fichier .txt avec MATLAB

    Merci asgrim, ca marche tres bien ta methode
    Et au fait, si ca peut rendre service a quelqu'un: on peut simplement ecrire le vecteur dans le fichier avec l'instruction:
    fprintf(fid, '%i\t', x)
    et ce, quelque soit la taille du vecteur x

    Le seul probleme, est que le resultat fait pas tres propre (tabulations et retours a la ligne qui s'affichent sous forme de caracteres etranges), sauf si j'ouvre le fichier avec wordpad, ou alors si je travaille directement en .rtf. Et j'ai besoin d'un fichier "propre" pour l'utiliser dans une autre application (j'ai peur d'avoir un bug avec les caracteres etranges).

    Quelqu'un saurait-il comment faire pour obtenir les tabulations et retours a la lignes "propres" dans mon fichier .txt?? Peut etre avec fwrite au lieu de fprintf? mais j'ai pas reussi a bien m'en servir, et j'ai l'impression qu'on ne peut alors plus ecrire de texte entre les vecteurs...
    Si quelqu'un a une idee, elle serait la bienvenue!

    Merci beaucoup!

  6. #5
    asgrim

    Re : Ecrire des donnees dans un fichier .txt avec MATLAB

    moi je dirais que ton fichier eszt propre mai que ton soft ne sais pas lire proprement

    les tab et les retour a la ligne c'est pour des appli 'affichage'
    bref c'est pour nous quand o lit a l'écran

    tu ne peux pas remplacer tes tab et tes retour a la ligne par d'autres
    séparateurs ( , ; / : ...)?????

    asgrim
    La lumière a quelque chose de maléfique.
    Seules d'obscures expériences permettent de s'y initier.

  7. A voir en vidéo sur Futura
  8. #6
    Monster

    Re : Ecrire des donnees dans un fichier .txt avec MATLAB

    Bonjour,
    J avais le meme probleme que Ghislaine et je suis tombe sur la reponse ici (merci), sauf que le fichier cree est remplace a chaque execution, est il possible de creer un fichier texte dont le contenu pourrait augmenter (mettre a la suite toutes les informations voulues a chaques execution du programme sans perdre ce qui a ete fait avant?, dans le but d avoir un fichier sauvegarde de donnees pour pouvoir comparer les resultats obtenus).
    Si quelqu'un avait une solution a ce petit probleme, merci de bien vouloir prendre le temps d y repondre...

  9. Publicité
  10. #7
    btve

    Re : Ecrire des donnees dans un fichier .txt avec MATLAB

    Monster : regarde dans l'aide de fopen, peut-être qu'il existe l'option a plutôt que w.

  11. #8
    Monster

    Re : Ecrire des donnees dans un fichier .txt avec MATLAB

    Merci btve, ca marche!, je savais qu il existait autant de permissions...
    Merci beaucoup...

  12. #9
    Gizbee

    Re : Ecrire des donnees dans un fichier .txt avec MATLAB

    Bonjour,

    Tout d'abord, merci bcp, j'ai rencontré les mm pb et ca marche très bien.

    Cependant, je souhaiterais écrire dans mon fichier du texte en y insérant des indices du style:
    fprintf(fid,'%s\n','Mesure du quadripôle(i, i+3*j, i+j, i+2*j)');

    J'aimerais donc qu'a chaque itération, matlab écrive dans mon fichier en remplacant les indices par leur valeur, mais je sais pas comment l'écrire.

    Si vous pouviez m'aider à résoudre ce petit pb, je vous en serais très reconnaissant.

  13. #10
    farhatbenighil

    Re : Ecrire des donnees dans un fichier .txt avec MATLAB

    Bonjour,
    j'ai un fichier .txt qui contien 10 colonnes et 800 000 ligne (ce fichier à été crier par matlab) je voudrai ajouter les entêtes (une entête sur chaque colonne) par matlab en gardant toujour les données dans le fichier sans perte.

    Je vous remercie énormément pour votre aide

Discussions similaires

  1. lire un fichier avec Matlab
    Par marionsmiley dans le forum Mathématiques du supérieur
    Réponses: 4
    Dernier message: 22/12/2013, 12h36
  2. Exportation de fichier dans MATLAB
    Par ouedfranck dans le forum Mathématiques du supérieur
    Réponses: 2
    Dernier message: 06/02/2007, 19h02
  3. adresse ip dans un fichier txt
    Par alainav1 dans le forum Internet - Réseau - Sécurité générale
    Réponses: 5
    Dernier message: 25/11/2006, 12h06
  4. [Matlab] Ecrire un espace dans un fichier binaire
    Par jepoirrier dans le forum Logiciel - Software - Open Source
    Réponses: 2
    Dernier message: 12/08/2004, 16h41
  5. Lecture d un fichier avec matlab
    Par Julian5962 dans le forum Logiciel - Software - Open Source
    Réponses: 6
    Dernier message: 05/07/2004, 15h03