在MATLAB中,我用这种方式打印一个非常大的矩阵:
fid = fopen('c:\\OUTPUT.txt','wt');
fprintf(fid,'%f\t',T');
fclose(fid);
但这不对!我想打印它:(\t
介于它们之间,\n
位于行末尾)
1 2 3
4 5 6
7 8 9
10 11 12
我搜索并发现如果是3 * 3这很好:
fprintf(fid,'%f %f %f\n',T');
但在我的情况下,我改变了尺寸...
答案 0 :(得分:16)
您可以使用非常简单的
fprintf([repmat('%f\t', 1, size(A, 2)) '\n'], A');
但每行末尾都会有一个多余的标签\t
:
>> 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
要将输出打印到文件,只需使用
fprintf(fid, [repmat('%f\t', 1, size(A, 2)) '\n'], A')
答案 1 :(得分:3)
答案 2 :(得分:0)
要添加到已被@Lumen接受且已经有用的答案
您可以使用'aliases' => array(
'viewhelpermanager' =>'ViewHelperManager'
)
消除多余的制表符,以寻找换行符strrep
之前的制表符,并用\t\n
代替。
因此
\n
成为:
fprintf([repmat('%f\t', 1, size(A, 2)) '\n'], A');