Arrays MATLAB:取列表中两个数字的平均值?
我正在尝试编写一个脚本,它取前两个数字的平均值,并生成一个新列表 例如,如果我有 a=[1,2,3,4],我希望它产生b=[1.5,2.5,3.5] ] 是否有将两个端点添加到循环中的方法?到目前为止,我已经:Arrays MATLAB:取列表中两个数字的平均值?,arrays,matlab,if-statement,for-loop,average,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 而且似乎效果不太好 谢谢 a=[1,2,3,4],我希望它产生b=
for i=1:m
betwn(i) = (values(i) + values(i+1))/2 %values is a list
if i = m
break
end
end
而且似乎效果不太好
谢谢
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;
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;
另一方面,
conv(a,[1 1]./2,'valid')
另一方面,
conv(a,[1 1]./2,'valid')
首先,决定要在端点添加什么。对于0.5,您添加了0;对于4.5,您添加了5?这对于一个人来说是合乎逻辑的,但是对于一个随机向量,matlab会放在哪里呢?否则,对于您的示例来说,首先决定要在端点添加什么,只需
([a5]+[0a])/2
。对于0.5,您添加了0;对于4.5,您添加了5?这对于一个人来说是合乎逻辑的,但是对于一个随机向量,matlab会放在哪里呢?否则,以你的例子来说,它只是([a5]+[0a])/2
太棒了!谢谢,我误读了这个问题,很抱歉搞混了。太棒了!谢谢,我误读了这个问题,很抱歉搞混了。