2015-01-12 3 views
-1

Я пытался решить эту проблему за последние несколько дней, не повезло, может кто-то помочь?!?Импорт дат Excel в MATLAB

Я пытаюсь прочитать некоторые финансовые временные ряды, уникально идентифицированные по дате, однако я не могу заставить MAYLAB правильно импортировать даты. Например, вот пример записи:

12/31/14 114.89 ... 

Использование xlsread() выполняет некоторое преобразование даты, что я не могу понять (математически), но вот что я получаю:

40542 114.89 ... 

Я использую этот коэффициент пересчета, но он не работает: datestr(dateNumToConvert+693960,'yyyymmdd');

Я не могу понять это, может ли кто-нибудь указать мне в правильном направлении? Это выполняется с использованием MATLAB R2014a на OS X 10.9

+1

Есть вы пробовали [x2mdat е] (http://uk.mathworks.com/help/finance/x2mdate.html)? – pnuts

+1

спасибо! не изменяя ничего, он преобразуется в день вперед, но эти 3 линии сделали трюк! x = xlsread ('test.xlsx'); mx = x2mdate (x (:, 1) -1,1); datestr (mx) – user3689341

ответ

1

Сегодня 02/03/2015, этот Excel хранит как 42065.

>> datestr(42065 + 693960, 'dd/mm/yyyy') 

ans = 

02/03/2015 

Ваша дата 31/12/2014 в Excel является 42004, поэтому мы получаем:

datestr(42004 + 693960, 'dd/mm/yyyy') 

ans = 

31/12/2014 

Обратите внимание, что в среде MATLAB:

>> today 

ans = 

     736025 

Это подтверждают:

>> 42065 + 693960 

ans = 

     736025