考虑数组
A = [x1,x2,x3,...,xn]
Run Code Online (Sandbox Code Playgroud)
那么你可以通过简单的方法在Matlab中将两个连续的数字一起添加到数组中,这样就可以得到:
B = [x1+x2, x3+x4,...]
Run Code Online (Sandbox Code Playgroud)
请注意,每个元素仅出现在一个总和中.
随着sum和reshape-
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,vec2mat从Communications 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)