У меня есть массив данных суточных осадков по географическому региону, который структурирован по долготе x широте x времени.Я хочу иметь возможность индексировать эти данные по месяцам и годам, и поэтому использовал datevec, чтобы найти месяцы / годы для каждого временного шага.Все хорошо!Однако у меня возникают проблемы при создании индекса, потому что число дат в каждом месяце и в каждом году не равны.
Первоначально я думал, что создам два индекса, используя цикл по месяцам и год, чтобы найти строки, связанные с каждым месяцем / годом в datevec.То есть я хотел что-то вроде (row_loc x month) и (year x row_loc), с заполнением NaN в тех местах, где не было бы данных (т.е. последние несколько значений в феврале или последние значения не високосных лет).Тем не менее, matlab не нравится тот факт, что число строк для каждого месяца / года не одинаково.
dates = datevec;
months = 1:12;
years = 1979:2016;
ind_mo = NaN(1178,length(months));
ind_yr = NaN(366,length(years));
for m = months
ind_mo(:,m) = find(dates(:,2) == m);
end
for y = 1:length(years)
ind_yr(:,y) = find(dates(:,1) == y);
end
В конце концов, я хотел бы иметь возможность индексировать данные об осадках по месяцам и годам.Если есть способ сделать это через структуру, я представляю ... здорово!Если есть и другой обходной путь, это тоже хорошо, хотя я бы предпочел не иметь отдельный индекс для каждого из 12 месяцев и 38 лет, так как я думаю, что это будет громоздко.
Заранее спасибо!