У меня очень длинный вектор строк даты (1000000+) в Matlab, который я хочу преобразовать в формат серийного номера. Проблема в том, что не каждая строка даты имеет одинаковый формат. Это один из двух форматов,
'2010-03-04 12: 00: 00,1'
или
'2010-03-04 12: 00: 00'
Проблема в том, что не все строки имеют точность в миллисекундах. Не существует регулярного шаблона относительно того, где происходят эти строки без миллисекунд. Данные первоначально считываются из файла данных, и строки в настоящее время существуют как массивы ячеек. Моя работа заключается в следующем:
for i=1:length(dates),
if length(dates{i})==19
dates(i)=datenum(temp);
elseif length(dates{i})==21
dates(i)=datenum(temp,'yyyy-mm-dd HH:MM:SS.FFF');
end
end
Возможно, есть лучший способ сделать это? Важно, чтобы я сохранил точность в миллисекундах, когда она присутствует. Цель этого состоит в том, что мне придется извлекать и рассчитывать статистику по данным, связанным с каждым разом, на основе различных временных критериев, и я решил, что было бы проще, если бы даты обрабатывались как числа.