2013-02-22 12 views
6

In MATLAB ich drucke eine sehr große Matrix auf diese Weise:Druck n * m Matrix in Matlab

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

Aber das ist nicht richtig! Ich möchte es zu drucken, wie dies :(\t zwischen ihnen und \n am Ende der Zeile)

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

ich gesucht und gefunden Wenn es 3 * 3 ist dies war in Ordnung:

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

Aber ich in meinem Fall Größe ändern ...

+0

Sie könnten die Kette nur die 'fprintf' Befehle wie,' für ii = 1: N; fprintf (fid, '% f', T (ii)); if (ii ~ = N) fprintf (fid, '\ t') Ende fprintf (fid, '\ n'); oder speichern Sie einfach in einer 'mat' Datei. – macduff

Antwort

14

können Sie das ganz einfach verwenden

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

Sie haben eine überflüssige Registerkarte \t am Ende jeder Zeile, aber:

>> 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 

Um die Ausgabe in eine Datei zu drucken, verwenden Sie einfach

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

Wo soll ich txt-Datei adressieren ?! – bunNyBug

+0

@bunNyBug Verwenden Sie 'fprintf (fid, ...)' – Lumen

+0

@Lumen - Irgendeine Möglichkeit, letzte leere neue Zeile zu beseitigen? –

2

Sie können auch bei dlmwrite aussehen wollen

können Sie Begrenzungszeichen gesetzt, Präzision usw.

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

Wo M ist Ihre Matrix.

Verwandte Themen