2013-02-22 8 views
6

En Matlab j'imprime une matrice très importante de cette façon:print n matrice * m Matlab

fid = fopen('c:\\OUTPUT.txt','wt'); 
fprintf(fid,'%f\t',T'); 
fclose(fid); 

Mais ce n'est pas vrai! Je veux imprimer comme ça :(\t entre eux et \n à la fin de la ligne)

1 2 3 
4 5 6 
7 8 9 
10 11 12 

J'ai cherché et trouvé S'il était 3 * 3 était bien:

fprintf(fid,'%f %f %f\n',T'); 

Mais je dans mon changement de taille de cas ...

+0

Vous pouvez simplement chaîner les commandes 'fprintf' comme,' pour ii = 1: N; fprintf (fid, '% f', T (ii)); si (ii ~ = N) fprintf (fid, '\ t') fin fprintf (fid, '\ n'); ou sauvegardez simplement dans un fichier 'mat'. – macduff

Répondre

14

Vous pouvez utiliser le très simple

fprintf([repmat('%f\t', 1, size(A, 2)) '\n'], A'); 

Vous aurez un onglet superflu \t à la fin de chaque ligne, cependant:

>> A = magic(5) 

A = 

    17 24  1  8 15 
    23  5  7 14 16 
    4  6 13 20 22 
    10 12 19 21  3 
    11 18 25  2  9 

>> fprintf([repmat('%f\t', 1, size(A, 2)) '\n'], A') 
17.000000 24.000000 1.000000 8.000000 15.000000 % oh, a tab 
23.000000 5.000000 7.000000 14.000000 16.000000 % oh, a tab 
4.000000 6.000000 13.000000 20.000000 22.000000 % oh, a tab 
10.000000 12.000000 19.000000 21.000000 3.000000 % oh, a tab 
11.000000 18.000000 25.000000 2.000000 9.000000 % oh, a tab 

Pour imprimer la sortie vers un fichier, il suffit d'utiliser

fprintf(fid, [repmat('%f\t', 1, size(A, 2)) '\n'], A') 
+0

où dois-je adresser le fichier txt ?! – bunNyBug

+0

@bunNyBug Utiliser 'fprintf (fid, ...)' – Lumen

+0

@Lumen - Un moyen d'éliminer la dernière ligne vide? –

2

Vous pouvez également regarder dlmwrite

Vous pouvez définir délimiteurs, précision, etc.

dlmwrite('myfile.txt', M, 'delimiter', '\t', 'precision', 6) 

M est votre matrice.

Questions connexes