我有一个与汇总数据有关的问题。是否存在一个对数组进行逐步求和的函数。必须有一些简单的方法,但我用Google搜索的话似乎不是正确的。基本上我想做的就是这个
mydata = rand(360,1);
cat_size = 10;
aggreg_sum = zeros(ceil(length(mydata)/cat_size),1);
c = 1;
for i = 1:cat_size: length(mydata)
aggreg_sum(c) = sum(mydata(i:(i+cat_size)-1));
c=c+1;
end
答案 0 :(得分:1)
关于第一个问题,您可以使用accumarray
:
subs = 0*mydata;
subs(1:cat_size:end) = 1;
subs = cumsum(subs);
aggreg_sum = accumarray( subs(:), mydata(:) );