Writing Cell array to File
8 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
Jason
el 13 de Abr. de 2015
Comentada: Jason
el 13 de Abr. de 2015
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?
0 comentarios
Respuesta aceptada
Guillaume
el 13 de Abr. de 2015
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.
Más respuestas (1)
Jan
el 13 de Abr. de 2015
Editada: Jan
el 13 de Abr. de 2015
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);
Ver también
Categorías
Más información sobre Low-Level File I/O en Help Center y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!