fprintf:将单元格数组写入文本文件

时间:2014-07-02 16:13:15

标签: matlab

我有一个名为myarray的字符串单元格数组,其中包含n个元素。我想将数组写入名为myfile.txt的文本文件中。我希望文本文件中的每一行都对应于单元格中的一个元素。

当我尝试以下操作时:

fid = fopen('myfile.txt', 'w');
for i=1:n
    fprintf(fid, '%s\n', myarray{i});
end

但是,这会在每个元素后输出一个没有任何回车符的文件。当我在Windows的记事本中打开它时,我只看到一个字符列表,这些字符来自myarray中连接在一起的字符串。但是,我希望每个字符串都在它自己的行上。

发生了什么事?

2 个答案:

答案 0 :(得分:2)

使用NotePad,您可能需要使用'\ r \ n'而不是'\ n'。因此:

fid = fopen('myfile.txt', 'w');
for i=1:n
    fprintf(fid, '%s\r\n', myarray{i});
end

我现在无法测试它。看看这个:

取自Matlab帮助:

  

某些Windows®文本编辑器(包括Microsoft®Notepad)需要一个   换行字符序列'\ r \ n'而不是'\ n'。但是,'\ n'是   适用于Microsoft Word或写字板

http://www.mathworks.com/help/matlab/import_export/write-to-delimited-data-files.html#br2ypq2-1

答案 1 :(得分:0)

您有两种选择。