Как заявили другие, вы можете указать формат ожидаемых строк даты для таких функций, как DATEVEC и DATENUM . Пример:
%# set of dates and an initial date
T0 = '2010-01-01T00:00:00Z';
T = repmat({'2010-07-31T23:01:57Z'}, [10 1]); %# cell array
%# format of datetime
frmt = 'yyyy-mm-ddTHH:MM:SS';
%# convert to serial date numbers, and compute difference between all T and T0
n = datenum(T,frmt);
n0 = datenum(T0,frmt);
tdiff = bsxfun(@minus, n, n0);
В качестве альтернативы, если у вас необычный формат даты, вы всегда можете разделить и проанализировать его самостоятельно с помощью таких функций, как TEXTSCAN :
vec = zeros(numel(T),6);
for i=1:numel(T)
C = textscan(T{i}, '%f', 'Delimiter',['-' ':' 'T' 'Z']);
vec(i,:) = C{1};
end
n = datenum(vec);
Обратите внимание, что в обоих случаях вы можете преобразовать обратно последовательное время в строки даты с помощью функции DATESTR .