Writing Cell array to File

8 次查看(过去 30 天)
Jason
Jason 2015-4-13
评论: Jason 2015-4-13
I have a cell array of size:
ans =
2428 1
and an exmaple few lines are:
C1 =
'GA008246-0_B_F_1852967891'
'GA011810-0_B_F_1852968731'
'GA017861-0_B_F_1852970072'
'GA017864-0_T_R_1853027526'
I am trying tow rite to a file, and perform the following:
%Write to file:
fileID = fopen('c:\TestFile.txt','w');
fprintf(fileID,'i NOT A\n');
[nrows,ncols] = size(C1)
for row = 1:nrows
fprintf(fileID,'%s\n',C1{row,1});
end
fclose(fileID);
But the resultant text file appears not to include the new line, and each item in the list is just appended adjacent to the last one?

采纳的回答

Guillaume
Guillaume 2015-4-13
It's very unfortunate that matlab's own examples don't include the 't' in their fopen call when dealing with text files, as it is indeed very important.
It assume your test was on Windows and that you used Notepad to look at the text file. The problem then occured because notepad only recognises the 'Windows' line ending (\r\n) and ignores 'Unix' line ending (just \n). Some more powerful editors would have shown you a line return.
Using 't' in fopen tells matlab to automatically translate the line endings so that they are right for the platform you are writing / reading the file on. On windows it writes \r\n for you if you only specify \n.

更多回答(1 个)

Jan
Jan 2015-4-13
编辑:Jan 2015-4-13
I cannot confirm your observations. Please try it again with a folder you have write access to:
C1 = {'GA008246-0_B_F_1852967891'; ...
'GA011810-0_B_F_1852968731'; ...
'GA017861-0_B_F_1852970072'; ...
'GA017864-0_T_R_1853027526'};
fileID = fopen(fullfile(tempdir, 'TestFile.txt'), 'w'));
if fileID == -1
error('Cannot open the file');
end
fprintf(fileID,'i NOT A\n');
for row = 1:numel(C1)
fprintf(fileID, '%s\n', C1{row});
end
fclose(fileID);
  1 个评论
Jason
Jason 2015-4-13
I now works when I use the following (include the t in the file permissions).
fileID = fopen('c:\TestFile.txt','wt');

请先登录,再进行评论。

类别

Help CenterFile Exchange 中查找有关 Low-Level File I/O 的更多信息

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by