使用Matlab把日数据合成年数据
2019-07-17 本文已影响11人
荔枝猪
需求
现有一份日数据,需合成年数据。
以2015-2017年降水数据为例,每个站点为一个元胞排为一行,每个元胞中第二列为年份,第五列为降水。
代码
function [data_year] = Day2Year_sum(data_d,begin_year,end_year)
% By Yang,2019/5/12
% 将日数据(降雨等)累加为年数据
% 输入:日数据data_d,每个站点一个元胞排为一行,每个元胞(前四列为站点号、年、月、日,第五列为需累加的数据(降雨等));
% 输入:开始年份begin_year;结束年份end_year;
% 输出:data_year年数据,第一列为begin_year的每年数据...最后一列为end_year的每年数据
for y = begin_year:end_year %循环每年的数据
for k = 1: length(data_d)
test2 = data_d{1,k};
test3 = test2(data_d{1,1}(:,2)==y,:); %找到对应年的数据分别计算,第2列是年
test4(k,1) = sum(test3(:,5)); %年降雨数据累加,降雨数据在第5列,如果是温度等数据,将sum改为mean
end
data_year(:,y-begin_year+1) = test4;
end
end