2016-06-30 9 views
1

У меня есть вектор (X) из 525599. Каждое значение представляет каждую минуту 2010 года (365 дней). Поясним:Преобразование минут в соответствующие даты

X  date 
1   1/1/2010 00:01:00 
2   1/1/2010 00:02:00 
3   1/1/2010 00:03:00 
... 
525599 31/12/2010 23:58:00 
525599 31/12/2010 23:50:00 

Как я могу преобразовать последовательные номера в X в формате, аналогичном второй колонке (DDMMYYYY HH: MM)?

+0

http: // se.mathworks.com/help/matlab/ref/datenum.html Вы имеете в виду что-то вроде этого? – KiW

ответ

1

Если у вас есть MATLAB версии 2014b или более поздней версии, то самый простой и лучший вариант заключается в использовании нового datetime типа данных:

datetime('2010-01-01') + minutes(X) 

На старых версиях использовать:

datestr(datenum('2010-01-01') + X/(24*60)) 
0

Альтернативой путь займет ваше время как Эпоха, а затем преобразовать его в дату:

epoch_mil = 1262304000000 + X*1000*60; % 2010/01/01 00:00:00.000 + your Minutes 
reference = datenum('1970', 'yyyy'); 
time = reference + epoch_mil/8.64e7; 
time_as_string = datestr(time, 'yyyy/mm/dd HH:MM:SS') 


>> X = 1:4; 
time_as_string = 

2010/01/01 00:01:00 
2010/01/01 00:02:00 
2010/01/01 00:03:00 
2010/01/01 00:04:00 

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

  • Нет связанных вопросов^_^