Print n * m matrix in matlab

In MATLAB, I print a very large matrix as follows:

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

But it's not right! I want to print this as follows: ( \t between them and \n at the end of the line)

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

I searched and found If it was 3 * 3, it was ok:

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

But in my case, I resized ...

+6
source share
2 answers

You can use very simple

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

You will have one extra tab \t at the end of each line, though:

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

To print the output to a file, simply use

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

You can also watch dlmwrite

You can set dividers, precision, etc.

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

Where M is your matrix.

+2
source

All Articles