构建逐步(汇总)总和

Building stepwise (aggregated) sum

我有一个与聚合数据相关的问题。是否有一个函数可以对数组进行逐步求和。一定有一些简单的方法,但我用谷歌搜索的词似乎不正确。所以基本上我想做的是这个

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

关于你的第一个问题,你可以使用accumarray:

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