Индексирование данных об осадках по месяцам в matlab - PullRequest
0 голосов
/ 29 апреля 2019

У меня есть массив данных суточных осадков по географическому региону, который структурирован по долготе 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 лет, так как я думаю, что это будет громоздко.

Заранее спасибо!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...