matlab中无环向量中的数求和
我有一个长度为L的向量。我想在MATLAB中不使用循环对每个matlab中无环向量中的数求和,matlab,performance,loops,sum,Matlab,Performance,Loops,Sum,我有一个长度为L的向量。我想在MATLAB中不使用循环对每个N数字求和,以节省仿真时间 例如,如果矩阵的L=10和N=2 A=[1,1,3,3,0,2,4,4,6,2] 矩阵B应为 B=[2,6,2,8,8] 在哪里 如果A的长度可以是奇数: n = floor(numel(A)/2) * 2; B = sum(reshape(A(1:n), 2, [])); 你可能也在考虑movsum C = movsum(A,2); B = C(2:2:end); 我将其性能评估为B=sum(重塑(
N
数字求和,以节省仿真时间
例如,如果矩阵的L=10
和N=2
A=[1,1,3,3,0,2,4,4,6,2]
矩阵B
应为
B=[2,6,2,8,8]
在哪里
如果A的长度可以是奇数:
n = floor(numel(A)/2) * 2;
B = sum(reshape(A(1:n), 2, []));
你可能也在考虑movsum
C = movsum(A,2);
B = C(2:2:end);
我将其性能评估为
B=sum(重塑(A,2,[])代码>Movsum大约需要2倍的重塑时间。但它提供了一些灵活性,并适用于非偶数长度向量 将初始向量重新整形为一个NxL/N
向量,然后按列求和,然后再重新整形。似乎movsum在matlab 2014中不起作用,我应该在2016年尝试。
n = floor(numel(A)/2) * 2;
B = sum(reshape(A(1:n), 2, []));
C = movsum(A,2);
B = C(2:2:end);