建立逐步(聚合)总和

时间:2015-12-03 09:52:08

标签: matlab sum aggregate multi-step

我有一个与汇总数据有关的问题。是否存在一个对数组进行逐步求和的函数。必须有一些简单的方法,但我用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

1 个答案:

答案 0 :(得分:1)

关于第一个问题,您可以使用accumarray

subs = 0*mydata;
subs(1:cat_size:end) = 1;
subs = cumsum(subs);
aggreg_sum = accumarray( subs(:), mydata(:) );