2017-02-14 3 views
2

В Matlab, я хочу создать график почасовых цен «DataSeriesEl» (размер 744 x 1). Они должны отправиться с 1 января 2008 года, с 00:00:00 до 31 января 2008 года, 23:00:00. Однако мой код переключается с 7 января по 05:59:59 - см. Ниже. Вы знаете, в чем проблема?Даты с функцией «addtodate» в Matlab

StartYearData = 2008; 

StartMonthData = 1; 

StartDayData = 1; 

date(1) = datenum(StartYearData,StartMonthData,StartDayData,0,0,0); 

for m = 2:length(DataSeriesEl) 
    date(m) = addtodate(date(m-1), 1, 'hour'); 
end 

str = datestr(date) 
+0

Я удалил свой прежний ответ, как это не кажется, чтобы ответить ваш вопрос правильно. Не могли бы вы загрузить свои данные и ссылку? – JCKaz

ответ

1

Я думаю, что это гораздо более простое решение, если вы используете этот метод, для этого метода вы не должны использовать цикл

StartYearData = 2008; 

StartMonthData = 1; 

StartDayData = 1; 

EndDayData = 31; 
dates(1) = datenum(StartYearData,StartMonthData,StartDayData,0,0,0); 
dates(2) = datenum(StartYearData,StartMonthData,EndDayData ,23,0,0); 
myDateTime = datetime(dates, 'ConvertFrom', 'datenum') 
hours = (myDateTime (2) - myDateTime (1))/duration(1,0,0); 
date = linspace(myDateTime(1),myDateTime(2),hours +1) 
+1

Отлично, спасибо! – LenaH

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