0

我试图以二十个为一组对一个向量求和,向量的长度是例如 7628。我想不出一种方法来输出一个包含 20 个或

ans = [sum(a(1:20) sum(a(21:30)....]. 
4

2 回答 2

3

由于 7600 可以被 20 整除,因此您可以重新整形和求和:

a = rand(7600,1);
sum(reshape(a,20,7600/20))

编辑非均分长度的寻址注释

b    = 20;
sz   = size(a);

% Last elements to exclude
excl = mod(sz(1),b);

% Sum reshape and sum excluded separately
[sum(reshape(a(1:end-excl), b, fix(sz(1)/b))), sum(a(end-excl+1:end))]
于 2013-07-10T22:28:36.907 回答
0

upfirdn应该也能很好地工作,放大因子为1,脉冲响应为ones(1,20),抽取因子为20

(注:需要信号处理工具箱)

于 2013-07-10T22:30:18.267 回答