所以我有一个包含5个元素的单元格数组。每个元素都是 n by 6 矩阵,如下所示:
31399.5 24581.8 24083.9 22764.7 22458 15473.5
81169.4 83739.2 82516.1 84139.6 83552.3 55342.7
41356.6 38413.3 37613 34329.8 38681.8 23949.9
对于数组中的每个元素,我想以与上面完全相同的格式将相应的矩阵打印到文本文件中 - 用空行分隔单元格数组的每个元素。
现在我能够将单元格数组的每个元素写入文本文件。但是,程序不会在新行上写下每一行,它看起来更像是这样:
31399.5 24581.8 24083.9 22764.7 22458 15473.5 81169.4 83739.2 82516.1 84139.6 83552.3 55342.7 41356.6 38413.3 37613 34329.8 38681.8 23949.9
它将每个矩阵写为一行。这是我的代码(labels
是 1 x 5 单元格数组):
fid = fopen('labels.txt','wt');
for i = 1:length(labels)
fprintf(fid,'%g\t',labels{i}');
fprintf(fid,'\n');
end
fclose(fid)
如何修改此项以便逐行显示数据?任何帮助都非常感谢。
答案 0 :(得分:2)
使用fprintf
打印矩阵绝不是非常友好的。尝试使用dlmwrite
代替fprintf
,如果要将结果附加到文件,请使用-append
标记。您还需要调整精度,因为默认情况下dlmwrite
会舍入数字。这样的事情可以奏效:
for i = 1:length(labels)
dlmwrite('labels.txt', sprintf('Label %d', i), '-append');
dlmwrite('labels.txt', labels{i}, '-append', 'precision', 6);
dlmwrite('labels.txt', ' ', '-append');
end
请注意,在编写下一个附加矩阵之前,我必须做一些黑客来执行回车。简单地说,我在矩阵之后添加了一个空格,以便在追加时强制换行。对于每个回车,你会看到一个空格,但我认为这不会有问题。我还冒昧地在每个矩阵之前添加Label i
,其中i
是在单元格i
看到的矩阵。