使用csvwrite和写日期的好奇行为

时间:2014-12-22 23:50:35

标签: matlab csv io output

在Matlab中将数字写入.csv时,它似乎会修改数据。 这对我来说是惊人的,这是我以前从未见过的。

>> csvwrite('FirstCol.csv',[201210;201211])    
>> twodates =csvread('FirstCol.csv')    
twodates =    
      201210
      201210

现在与xlswrite

进行比较
>> xlswrite('FirstCol.xls',[201210;201211])    
>> aa=xlsread('FirstCol.xls')    
aa =    
      201210
      201211

原因可能是日期相似的数字下面的某些自动格式化吗? (我的解释只是神秘主义)

1 个答案:

答案 0 :(得分:1)

来自csvwrite documentation

  

csvwrite最多可写入五位有效数字。如果需要更高的精度,请使用带有精度参数的dlmwrite

这样做:

csvwrite('FirstCol.csv',[201210;201211])
csvread('FirstCol.csv')

你确实失去了最后的数字。

但是使用dlmwrite,您可以

dlmwrite('FirstCol.csv',[201210;201211],'precision',6)
dlmread('FirstCol3.csv')

确实会产生正确的输出。

我正在使用Mac而我无法使用xlswrite,但显然这也是一种合理的方法。