The data is not correctly written with CSVWRITE, after 100000 rows

조회 수: 1 (최근 30일)
Caizhen
Caizhen 2014년 6월 26일
답변: José-Luis 2014년 6월 26일
I need to use the following to write the time with 10ms step for more than 1100 seconds.
csvwrite('test.csv', [1:0.01:1100]');
The data in 'test.csv' is ok, until > 1000
999.94
999.95
999.96
999.97
999.98
999.99
1000
1000
1000
1000
1000
1000.1
1000.1
1000.1
1000.1
1000.1
1000.1
1000.1
1000.1
1000.1
1000.1
1000.2
1000.2
1000.2
1000.2
Did someone have the same problem? How did you solve this?
Thanks C

답변 (2개)

José-Luis
José-Luis 2014년 6월 26일
From the documentation:
csvwrite writes a maximum of
five significant digits. If you need greater precision, use dlmwrite with a precision argument
You could use:
dlmwrite('test.csv', [1:0.01:1100, 'delimiter', ',', ...
'precision', 6)

C.J. Harris
C.J. Harris 2014년 6월 26일
You could use fprintf instead.
fid = fopen('test.csv','w');
fprintf(fid,'%0.2f\n', [0:0.01:1100]);

카테고리

Help CenterFile Exchange에서 Text Files에 대해 자세히 알아보기

Community Treasure Hunt

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

Start Hunting!

Translated by