2014-12-22 4 views
1

При записи чисел в .csv в Matlab, кажется, что-то изменили данные. Это тревожит меня, чего я никогда раньше не видел.Любопытное поведение с датами csvwrite и датами

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

Может причина быть какой-то автоматическое форматирование под датой автомодельного номерами? (Мое объяснение просто mystcism)

+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, но, очевидно, это разумный метод.

Смежные вопросы