我有一个长度为L
的向量。我想在MATLAB中没有循环地对每个N
数字求和,以节省模拟时间。
例如,如果矩阵为<{1}}和L=10
N=2
矩阵A=[1,1,3,3,0,2,4,4,6,2]
应为
B
,其中
B=[2,6,2,8,8]
答案 0 :(得分:3)
B = sum(reshape(A, 2, []));
如果A的长度可以是奇数:
n = floor(numel(A)/2) * 2;
B = sum(reshape(A(1:n), 2, []));
答案 1 :(得分:3)
您可能也在考虑使用movsum。
C = movsum(A,2);
B = C(2:2:end);
我评估它的表现为B = sum(reshape(A, 2, []));
Movsum大约是重塑时间的2倍。但它为非偶数长度向量提供了一些灵活性和运行。