[MATLAB] aide pour ecrire dans un fichier

aide pour ecrire dans un fichier [MATLAB] - Divers - Programmation

Marsh Posté le 23-03-2007 à 10:18:26    

bonjour!
j'ai un petit problème avec les fwrite de MATLAB.  
Je voudrais écrire une matrice dans un fichier texte. Je vous donne l'exemple suivant:
[I]
mat= [1 2 3;4 5 6];
comments=strcat('coordonnees de l image:', num2str(mat));
file=fopen('D:\data\test.txt','w+');
fwrite(file,comments,'char');
fclose(file);
[/I]
 
Mon problme est que si je n'est qu'une seule ligne dans ma matrice, ça marche, mais si j'en ai plus, ça part en sucette. Je vous laisse juger:
[I]
CCoooorddoonnneeeess  deee  ll  iiimaggeee:: 14  25  36
[/I]
 
quelqu'un voit pourquoi j'ai des lettres répété aléatoirement??
 
merci!

Reply

Marsh Posté le 23-03-2007 à 10:18:26   

Reply

Marsh Posté le 23-03-2007 à 11:56:33    

Attention la répétition de tes lettres n'est pas aléatoire, mais est lié au nombres de lignes.
 
Si on reprend ton exemple le résultat obtenu est ccoooorrddoonnnneeeess  ddee  ll  iimmaaggee::14    25    36
Ce qui peut se "voir" comme  
c_o_o_r_d_o_n_n_e_e_s_  d_e_  l_  i_m_a_g_e_:_1_    2_    38
_c_o_o_r_d_o_n_n_e_e_s  _d_e  _l  _i_m_a_g_e_:_4    _5    _6
 
Ceci vient des dimensions de ton 'comments', à savoir 2x30 chars
Le fwrite te fait l'équivalent de ceci
for(i=1:30)
fprintf(file,"%c%c",comments(1,i),comments(2,i))
end
 
Je ne suis pas sur que avec un fwrite, qui est fait à la base pour les écritures binaires tu arrives à faire ce que tu veux. Je pense que une utilisation de fprintf est plus appropriée à ton cas.
 
 
 

Reply

Marsh Posté le 26-03-2007 à 10:59:32    

je te remercie, je vais voir si ta solution fonctionne.
 
EDIT: je te remercie bcp! ça marche ;)


Message édité par boullette38 le 27-03-2007 à 14:20:37
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed