Matlab将矩阵写入文本文件问题

时间:2014-12-18 03:32:40

标签: matlab file text matrix

我正在尝试在其#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          ...          ...       ...         ...

注意......在这里象征着那里有数据(矩阵中的其他值)。

那么如何修复它以使矩阵正确显示?

1 个答案:

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