Why is there loss of precision when writing values using CSVWRITE in MATLAB 7.0 (R14)?

55 ビュー (過去 30 日間)
I execute the following code to write the value '1.23456789' to my CSV-file, as follows:
csvwrite('filename.csv', [1.23456789])
Upon reading the value back from the file, I see that there is some loss in precision:
val = csvread('filename.csv')
val =
1.2346
When I open the "filename.csv" file, it too contains the rounded-off value.

採用された回答

MathWorks Support Team
MathWorks Support Team 2009 年 6 月 27 日
The CSVWRITE function converts numbers to short format before writing them to the file. To preserve precision, use the DLMWRITE function to explicitly set the precision of the data in the CSV-file:
dlmwrite('filename.csv', [1.23456789], 'delimiter', ',', 'precision', 9);

その他の回答 (0 件)

カテゴリ

Help Center および File ExchangeText Files についてさらに検索

製品

Community Treasure Hunt

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

Start Hunting!

Translated by