Python和科学计算认证群组  - 讨论区

标题:利用mask拟合数据问题

2013年11月17日 星期日 15:30

import numpy.ma as ma
import numpy as np
import pylab as plt

Sig =  np.loadtxt('Sig.txt')

x = np.array (range(0,len(Sig[:])))
y = Sig[:]
#print '  unmasked: ', np.polyfit (x, y, 3)

mask = np.zeros (x.shape, dtype = np.bool)

mask[238:316] = True
mask[368:415] = True
mask[486:540] = True
mask[628:731] = True
mask[765:808] = True


mx = ma.array (x, mask = mask)
my = ma.array (y, mask = mask)

Coeff1 = np.polyfit (mx, my, 4)
#Coeff1 = [-6.71108E-9,1.66786E-5,-0.01098,-6.56826,21700.0458]

Fit_baseline = np.polyval(Coeff1, x)

plt.figure(3).clf()
plt.plot(Sig, '.',label='raw data')
plt.plot(x,Fit_baseline,label='Fit_baseline')
plt.plot(mx,my,'r-',label='unmasked')
plt.grid(True)
plt.legend(loc='best')

2013年11月17日 星期日 15:33

不知道问题出在什么地方?请指教,感谢

原始数据上传到群共享中,但找不到在哪不知道为啥

2013年11月23日 星期六 12:23

用numpy.ma.polyfit()

2013年11月23日 星期六 18:48

    eps = np.finfo(np.float32).eps 

    Coeff1 = np.ma.polyfit (np.float32(mx), my, 5) 

 

问题解决,谢谢版主!

如下红色区域有误,请重新填写。

    你的回复:

    请 登录 后回复。还没有在Zeuux哲思注册吗?现在 注册 !

    Zeuux © 2024

    京ICP备05028076号