Я думаю, что проблема в вашем внутреннем цикле.Вы перебираете nn
, но не используете его при создании имени файла.Таким образом, вы закончили загрузку каждого файла дважды:
Поэтому ваш вывод выглядел следующим образом (повторяющиеся файлы):
D_1{1,1} = F:\salidas_nam\1980\1980010106_NAM_day01.dat
D_1{2,1} = F:\salidas_nam\1980\1980010106_NAM_day01.dat
D_1{1,2} = F:\salidas_nam\1981\1981010106_NAM_day01.dat
D_1{2,2} = F:\salidas_nam\1981\1981010106_NAM_day01.dat
...
Однако, я думаю, вы хотите это (без повторов):
D_1{1,1} = F:\salidas_nam\1980\1980010106_NAM_day01.dat
D_1{2,1} = F:\salidas_nam\1981\1981010106_NAM_day01.dat
D_1{1,2} = F:\salidas_nam\1980\1980010206_NAM_day01.dat
D_1{2,2} = F:\salidas_nam\1981\1981010206_NAM_day01.dat
...
Если это так, то вы можете сбросить внутренний цикл for
и сделать что-то вроде этого:
for idia=1:lmes
nn = 1;
for iano = anoini:anofin
D_1{nn,idia} = load(sprintf('F:\\salidas_nam\\%d\\%d%0.2u%0.2u06_NAM_day01.dat',iano,iano,mesini,idia));
nn = nn+1;
end
end
Это не решает потенциальные проблемы високосного года, которые могут возникнуть у вас, как упоминал Адрианв комментариях.