fprintf不打印新行

时间:2011-06-30 14:45:44

标签: matlab file-io newline

我正在尝试使用fprintf()命令将一个大小为[2 x N]的数组发送到文本文件中。我遇到问题fprintf()无法识别新行命令(\n)或回车命令(\r)。我正在使用的代码是

fid = fopen([Image.Dir,'CtlPts_',Image.Files{k},'.txt'],'w');
fprintf(fid,'%.4f\t%.4f\n',control_points{k});
fclose(fid);

我尝试打印的数据位于单元格control_points{k}中。

标签打印得很好,但文本文件中的所有内容都打印在一行上,所以这就是为什么我假设它忽略了我的新行字符。

我没有看到我的语法有什么问题吗?

2 个答案:

答案 0 :(得分:10)

我知道在许多系统上,\ n不足以创建你所要求的东西(所以,也许你必须要做\ r \ n)

答案 1 :(得分:9)

另一种解决方案是在{em>文本模式中open文件,这样MATLAB会自动在任何换行\r字符之前插入回车\n。 Windows系统上的输出:

fid = fopen('file.txt', 'wt');
fprintf(fid, '%f\t%f\n', rand(10,2));
fclose(fid);

请注意,这有点不必要,因为大多数编辑器(Microsoft记事本除外)都能识别Unix / Mac / Windows行结尾。