矢量的contiguos段的平均值

时间:2017-02-15 14:21:30

标签: matlab filter moving-average

我确信这对信号人来说是一个微不足道的问题。我需要在Matlab中找到函数,该函数输出一个向量的windowsize = l的连续段的平均值,例如

origSignal: [1 2 3 4 5 6 7 8 9];
windowSize = 3;
output = [2 5 8]; % i.e. [(1+2+3)/3 (4+5+6)/3 (7+8+9)/3]

编辑:How can I (efficiently) compute a moving average of a vector?中提供的选项之一似乎都没有用,因为我需要3号窗口滑动,并且不包含任何以前的元素......也许我错过了它。看看我的例子......

谢谢!

1 个答案:

答案 0 :(得分:3)

如果原始数据的大小始终是widowsize的倍数:

mean(reshape(origSignal,windowSize,[]));

另外,在一行中:

mean(reshape(origSignal(1:end-mod(length(origSignal),windowSize)),windowSize,[]))

这和以前一样,但信号只到最后减去额外值小于windowsize。