使用MATLAB的fprintf

时间:2016-05-13 11:56:01

标签: matlab printf notepad++ newline notepad

我正在尝试使用MATLAB将新行添加到循环中的.txt文件中,如下所示:

for i=1:N
    % do something
    % something done. write them to text file:
    fid = fopen(outfile, 'a');
    for j = 1:numel(smth.text)
        fprintf(fid, '\n%s;%d', smth.text{j}, smth.data(j));
    end
    fclose(fid);
end

当我完成后,我在Notepad ++中打开文件(如果相关,编码是UTF-8)并正确看到它,即:

text1;data1
text2;data2
etc

然而,当我在Windows的记事本中打开文件时,我看到它是这样的:

text1;data1text2;data2etc

因此换行符中没有显示换行符。

我如何解决这个问题,以便我可以随处获取新行?

感谢您的帮助,

1 个答案:

答案 0 :(得分:1)

您需要在yoru \r命令中添加fprintf以便Windows记事本识别换行符(记事本++显示不会受到影响)。

for i=1:N
  % do something
  fid = fopen(outfile, 'a');
  for j = 1:numel(smth)
    fprintf(fid, '\r\n%s;%d', smth.text{j}, smth.data(j));
  end
  fclose(fid);
end

可以找到\r\n之间差异的一个很好的解释here