我敢肯定,对于信号人员来说,这是一个微不足道的问题。我需要在 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 号幻灯片的窗口,并且不包含任何以前的元素......也许我错过了它。看看我的例子...

谢谢!

最佳答案

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

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

否则,在一行中:
mean(reshape(origSignal(1:end-mod(length(origSignal),windowSize)),windowSize,[]))

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

关于matlab - 向量的平均非连续段,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/42251938/

10-12 20:36