MATLAB:取一个列表中两个数字的平均值?

时间:2014-10-04 03:18:41

标签: arrays matlab if-statement for-loop average

我正在尝试编写一个脚本,它取前两个数字的平均值并生成一个新列表。

例如,如果我有

a = [1,2,3,4],我希望它产生b = [1.5,2.5,3.5 ]

无论如何都要将两个端点添加到循环中?到目前为止,我有:

for i=1:m
    betwn(i) = (values(i) + values(i+1))/2 %values is a list
    if i = m
        break
    end
end

它看起来效果不好......

谢谢!

2 个答案:

答案 0 :(得分:2)

  

a = [1,2,3,4],我希望它产生b = [1.5,2.5,3.5]

循环中没有必要

b = (a(1 : end - 1) + a(2 : end)) / 2;

另一种方式

b = a(1 : end - 1) + diff(a) / 2;

答案 1 :(得分:2)

另一种方式,

conv(a,[1 1]./2,'valid')