我正在尝试使用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}
中。
标签打印得很好,但文本文件中的所有内容都打印在一行上,所以这就是为什么我假设它忽略了我的新行字符。
我没有看到我的语法有什么问题吗?
答案 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行结尾。