У меня есть массив, который содержит несколько дат в формате ггггммдд, хранящихся в виде двойного 50x1. Я пытаюсь извлечь год, месяц и день, чтобы я мог использовать datenum для присвоения каждой дате серийного номера.
Индексирование отдельной даты, преобразование с использованием str2num, затем индексация и извлечение соответствующих значений работает нормально, но когда я пытаюсь перебрать список дат, он не работает - возвращаются только варианты числа 2.
dates = [20180910; 20180920; 20181012; 20181027; 20181103; 20181130; 20181225];
% version1
datesnums=num2str(dates); % dates is a list of dates stored as
integers
for i=1:length(datesnums)
pullyy=str2num(datesnums(1:4));
pullmm=str2num(datesnums(5:6));
pulldd=str2num(datesnums(7:8));
end
а также
%version2
datesnums=num2str(dates,'%d')
for i = 1:length(datesnums)
dd=datenum(str2num(datesnums(i(1:4))),str2num(datesnums(i(5:6))),
str2num(datesnums(i(7:8))));
end
Я пытаюсь сгенерировать новый массив, который представляет собой просто порядковые номера входных дат. В показанных примерах я получаю только одно целочисленные значения, которые я знаю, потому что цикл неправильный, и я получаю ошибки, которые говорят: «Индекс превышает количество элементов массива (1)». для версии 1. Когда я добился того, чтобы все проходило успешно, выходными данными являются просто «2222», «22,« 22 »для каждой отдельной даты, которая является неправильной. Что я делаю неправильно? Нужно ли включать массив ячеек?