Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/matlab/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Arrays MATLAB:取列表中两个数字的平均值?_Arrays_Matlab_If Statement_For Loop_Average - Fatal编程技术网

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

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=

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

例如,如果我有

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=[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
太棒了!谢谢,我误读了这个问题,很抱歉搞混了。太棒了!谢谢,我误读了这个问题,很抱歉搞混了。