对数组的连续元素组求和

Nic*_*son 5 arrays matlab

考虑数组

A = [x1,x2,x3,...,xn]
Run Code Online (Sandbox Code Playgroud)

那么你可以通过简单的方法在Matlab中将两个连续的数字一起添加到数组中,这样就可以得到:

B = [x1+x2, x3+x4,...]
Run Code Online (Sandbox Code Playgroud)

请注意,每个元素仅出现在一个总和中.

Div*_*kar 8

随着sumreshape-

B = sum(reshape(A,2,[]),1)
Run Code Online (Sandbox Code Playgroud)

随着interp1基于this-

nA = numel(A);
start = 1/(2*nA-2);
stop = 1 - start;
B = 2*interp1( linspace(0,1,nA), A,linspace(start,stop,nA/2))
Run Code Online (Sandbox Code Playgroud)

如果打code-golf,vec2matCommunications System Toolbox可以使用-

B = sum(vec2mat(A,2),2)
Run Code Online (Sandbox Code Playgroud)

或者更紧凑 -

B = sum(vec2mat(A,2)')
Run Code Online (Sandbox Code Playgroud)


joj*_*jek 5

尝试类似的东西:

B = A(1:2:end)+A(2:2:end)
Run Code Online (Sandbox Code Playgroud)


Rat*_*ert 5

是:

B = A(1:2:end) + A(2:2:end);
Run Code Online (Sandbox Code Playgroud)

最好,