fprintf不打印新行

thr*_*ree 5 file-io matlab newline

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

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

我试图打印的数据在单元格中control_points{k}.

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

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

Kev*_*imm 10

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


Amr*_*mro 9

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

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

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