Problem writing in data into a csv using fprintf

2 次查看(过去 30 天)
I have a csv file I have written using csvwrite which already contains 3 lines of strings:
fid=fopen('test.csv','wt');
fprintf(fid,'abs 3.1 \n');
fprintf(fid,'This is a line \n');
fprintf(fid,'ID Date lat lon val \n');
Now I am trying to fill in data under each column with data in m which is a 10 by 4 marix. Column 1 are ids (5 digits), col.2 are dates (I want is to be in yyyymmddhhmm format but currently is in scientific notation in the table), cols. 3 and 4 are coordinates (e.g. 43.45 & -114.53), and col.5 are some values (e.g. 1.2345).
I have a hard time writing data in the csv. I am currently trying the following piece of code, but data fills in not the way it should be. Data are not stored under each header correctly.
for r=1:size(m,1)
fprintf(fid,'%5.1f',m(r,:));
if r~=size(m,1)
fprintf(fid,'\n');
end
end
Any thoughts is greatly appreciated.
Kian

回答(1 个)

Muthu Annamalai
Muthu Annamalai 2015-8-10
编辑:Muthu Annamalai 2015-8-10
Have you tried csvwrite or dlmwrite ?
doc csvwrite
doc dlmwrite
  3 个评论
Walter Roberson
Walter Roberson 2015-8-10
dlmwrite('test.csv', m, '-append', 'delimiter', '\t', 'precision', '%g');

请先登录,再进行评论。

Community Treasure Hunt

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

Start Hunting!

Translated by