Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/performance/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
matlab中无环向量中的数求和_Matlab_Performance_Loops_Sum - Fatal编程技术网

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(重塑(

我有一个长度为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(重塑(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);