Problem writing in data into a csv using fprintf

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 个)

Have you tried csvwrite or dlmwrite ?
doc csvwrite
doc dlmwrite

3 个评论

Thank you for the hints.
I tried:
dlmwrite('test.csv', m, '-append', 'delimiter', '\t');
It writes data into table now in order. But cause the headers to all go into the first top left cell.
dlmwrite('test.csv', m, '-append', 'delimiter', '\t', 'precision', '%g');
Thank you, but didn't work.

请先登录,再进行评论。

类别

帮助中心File Exchange 中查找有关 Cell Arrays 的更多信息

提问:

2015-8-10

Community Treasure Hunt

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

Start Hunting!

Translated by