datenum
не менял при получении значений для часа больше 24. Например:
>> time = '06.12.2011 53:31:11';
>> timen=datenum(time,'dd.mm.yyyy HH:MM:SS');
>> datestr(timen,'dd.mm.yyyy HH:MM:SS')
ans =
08.12.2011 05:31:11
Однако при попытке запустить ваш код я получил ту же ошибку, но в тех случаях, когда было два наблюдения с одной и той же отметкой времени. Это происходит потому, что строка:
time=cellfun(@(x) sprintf('%s %s',day{strcmpi(hour,x)},x),hour,'uniformoutput',0);
объединит несколько значений day
и одно значение hour
, генерируя недопустимую строку времени, например '07.12.2011 07.12.201110:36:11 '
Поскольку, похоже, вы хотите получить одно значение time
за наблюдение (в отличие от одного за unique(hour)
), я предлагаю вычислить time
как
time = strcat(day,{' '},hour)