如何用Matlab做移动平滑处理

来源:百度知道 编辑:UC知道 时间:2024/05/10 09:41:46
11000 6 8 29 21 0 9 47 147
11001 6 8 29 21 0 10 89 149
11002 6 8 29 21 0 12 31 142
11003 6 8 29 21 0 13 71 146
11004 6 8 29 21 0 15 12 149
11005 6 8 29 21 0 16 52 151
11006 6 8 29 21 0 17 92 146
11007 6 8 29 21 0 19 32 144
11008 6 8 29 21 0 20 73 148
11009 6 8 29 21 0 22 14 148
希望将以上数据的最后一列做移动平滑处理,然后输出到文件中,望指点

用多项式拟合平滑,先用一阶的。

A=[...
11000 6 8 29 21 0 9 47 147
11001 6 8 29 21 0 10 89 149
11002 6 8 29 21 0 12 31 142
11003 6 8 29 21 0 13 71 146
11004 6 8 29 21 0 15 12 149
11005 6 8 29 21 0 16 52 151
11006 6 8 29 21 0 17 92 146
11007 6 8 29 21 0 19 32 144
11008 6 8 29 21 0 20 73 148
11009 6 8 29 21 0 22 14 148]
x=A(:,1),y=A(:,end)
p=polyfit(x,y,1)
y1=polyval(p,x)
format short g
A=[A(:,1:end-1),y1]
plot(x,y,'o-',x,y1)

结果:
p =

0.084848 -786.72

y1 =

146.62
146.7
146.79
146.87
146.96
147.04
147.13
147.21
147.3
147.38

A =

11000 6 8 29 21 0 9 47 146.62
11001 6 8 29