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!
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.
09/07/2004 - 09h45
asgrim
Date d'inscription
juin 2004
Messages
77
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.
09/07/2004 - 22h07
ghislaine
Date d'inscription
juillet 2004
Localisation
Mexico
Âge
31
Messages
10
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!
12/07/2004 - 07h46
asgrim
Date d'inscription
juin 2004
Messages
77
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.
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...
04/08/2004 - 11h56
btve
Date d'inscription
mai 2003
Localisation
Lorient/Bretagne
Âge
28
Messages
208
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.
04/08/2004 - 12h34
Monster
Date d'inscription
août 2004
Messages
2
Re : Ecrire des donnees dans un fichier .txt avec MATLAB
Merci btve, ca marche!, je savais qu il existait autant de permissions...
Merci beaucoup...
09/07/2009 - 09h52
Gizbee
Date d'inscription
juillet 2009
Âge
27
Messages
1
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.
24/10/2011 - 16h03
farhatbenighil
Date d'inscription
octobre 2011
Messages
1
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.