将单元格元素打印到文本文件
Printing cell elements to text file
所以我有一个包含 5 个元素的元胞数组。每个元素都是一个 n x 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)
如何修改它以便数据逐行显示?非常感谢任何帮助。
使用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
请注意,在您编写下一个追加矩阵之前,我不得不做一些修改来执行回车 return。简单地说,我在矩阵后面附加了一个 space 以在附加时强制换行。对于每个车厢 return,您将看到一个空行,其中有一个 space,但我假设这不会成为问题。我还冒昧地在每个矩阵之前添加了 Label i
,其中 i
是在单元格 i
.
处看到的矩阵
所以我有一个包含 5 个元素的元胞数组。每个元素都是一个 n x 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)
如何修改它以便数据逐行显示?非常感谢任何帮助。
使用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
请注意,在您编写下一个追加矩阵之前,我不得不做一些修改来执行回车 return。简单地说,我在矩阵后面附加了一个 space 以在附加时强制换行。对于每个车厢 return,您将看到一个空行,其中有一个 space,但我假设这不会成为问题。我还冒昧地在每个矩阵之前添加了 Label i
,其中 i
是在单元格 i
.