我正在尝试在其#34;列标题下正确显示25x5列矩阵" (其中5个)成文本文件。
fprintf(fileID,'%8s %16s %24s %32s %40s\n', 'ID', 'Column 1', 'Column 2',...
'Column 3', 'Column 4');
fprintf(fileID,'%8.1f %16.1f %24.1f %32.1f %40.1f\n', uData);
在文本文件中,它会显示整行中的一列(例如ID列):
ID Column 1 Column 2 Column 3 Column 4
1 2 3 4 5
它应该做的是关注" ID"列,如1,2,3,4和5都属于一列,我将其指定为" ID"在文本文件中:
ID Column 1 Column 2 Column 3 Column 4
1 ... ... ... ...
2 ... ... ... ...
3 ... ... ... ...
4 ... ... ... ...
注意......在这里象征着那里有数据(矩阵中的其他值)。
那么如何修复它以使矩阵正确显示?
答案 0 :(得分:2)
那是因为当您在MATLAB中使用fprintf
写入数据时,数据以 column-major 格式编写。这意味着矩阵的值将打印到文件中,以便矩阵的每一行实际上都写在列中,这正是您所注意到的。请注意,1, 2, 3, 4...
的值首先沿着列写入,您希望沿着行写入值。
要在行专业(即您想要的内容)中编写此内容,您需要在写入之前转置您的数据。因此,这样做:
fprintf(fileID,'%8s %16s %24s %32s %40s\n', 'ID', 'Column 1', 'Column 2',...
'Column 3', 'Column 4');
fprintf(fileID,'%8.1f %16.1f %24.1f %32.1f %40.1f\n', uData.'); %// CHANGE - notice uData