我试图以二十个为一组对一个向量求和,向量的长度是例如 7628。我想不出一种方法来输出一个包含 20 个或
ans = [sum(a(1:20) sum(a(21:30)....].
我试图以二十个为一组对一个向量求和,向量的长度是例如 7628。我想不出一种方法来输出一个包含 20 个或
ans = [sum(a(1:20) sum(a(21:30)....].
由于 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))]
upfirdn
应该也能很好地工作,放大因子为1
,脉冲响应为ones(1,20)
,抽取因子为20
。
(注:需要信号处理工具箱)