每两个元素意味着这两个元素之间



我是Matlab的新手。我试着取每两个连续元素的平均值,并将其放在这两个连续的元素之间。例如如果我有一个向量如下:

  a=[1 2 5 4 3 6]

最后我需要b样:

b=[1 1.5 2 3.5 5 4.5 4 3.5 3 4.5 6] 

它可以通过循环来完成,但我试图通过matlab函数来完成,这可能吗?

"暴力方式":

b = zeros( 1, 2*numel(a)-1 );
b(1:2:end) = a; % take care of the original values
b(2:2:end) = 0.5*( a(1:end-1) + a(2:end) ); % the mean

使用interp1:

b = interp1( 1:2:(2*numel(a)-1), a, 1:(2*numel(a)-1), 'linear' )

最新更新