我在下面有以下代码:
for i = 1:numel(Class1_mon_avg_synop) %size of Class1_mon_avg_synop is 1 x 12 cell
ave(i) = Class1_mon_avg_synop{1,i}.sum_rrr24(1); % first row in sum_rrr24 is for January
Jan_class1_avg{i,1} = ave(i);
end
for i = 1:numel(Class1_mon_avg_grid) %size of Class1_mon_avg_grid is 1 x 12 cell
ave(i) = Class1_mon_avg_grid{1,i}.sum_precip(1);% first row in sum_precip is for January
Jan_class1_avg{i,2} = ave(i);
end
% Do same for next month
for i = 1:numel(Class1_mon_avg_synop)
ave(i) = mean(Class1_mon_avg_synop{1,i}.sum_rrr24(2)); % second row in sum_rrr24 is for February
Feb_class1_avg{i,1} = ave(i);
end
for i = 1:numel(Class1_mon_avg_grid)
ave(i) = mean(Class1_mon_avg_grid{1,i}.sum_precip(2)); % second row in sum_rrr24 is for February
Feb_class1_avg{i,2} = ave(i);
end
% do same for all other month
% ...
由于我应该计算所有12个月的时间,因此我将其写为for循环:
for i = 1:numel(Class1_mon_avg_synop)
ave(i) = Class1_mon_avg_synop{1,i}.sum_rrr24(i);
ave(i) = Class1_mon_avg_grid{1,i}.sum_precip(i);
ALLMONTHS_class1_avg{i,i} = ave(i);
ALLMONTHS_class1_avg{i,i+1} = ave(i);
end
但是不幸的是,我得到了错误的答案:
因为我认为它必须是12 x 24格。一月的第一栏和第二栏,二月的第三栏和第四栏,等等...
答案 0 :(得分:0)
我认为我发现了两个问题:
(a)超越ave(i)
,并且(b)将值放在ALLMONTHS_class1_avg{i,i}
和ALLMONTHS_class1_avg{i,i+1}
中,所以它们是对角线和对角线上方的行。
根据您的示例,您最终应该拥有一个12 x 2的单元。
我建议这样:
for i = 1:numel(Class1_mon_avg_synop)
ave_1(i) = Class1_mon_avg_synop{1,i}.sum_rrr24(i);
ave_2(i) = Class1_mon_avg_grid{1,i}.sum_precip(i);
ALLMONTHS_class1_avg{i,1} = ave_1(i);
ALLMONTHS_class1_avg{i,2} = ave_2(i);
end