【发布时间】:2014-08-14 02:55:35
【问题描述】:
我在尝试查找某些数据的 FWHM 时遇到问题。我最初尝试使用interpolate.interp1d 拟合曲线。有了这个,我可以创建一个函数,当我输入一个 x 值时,它会返回一个插值的 y 值。问题是我需要这个功能的反面。换句话说,我想切换我的自变量和因变量。当我尝试切换它们时,我会收到错误,因为必须对独立数据进行排序。如果我对数据进行排序,我会丢失索引,从而丢失图表的形状。
我试过了:
x = np.linspace(0, line.shape[0], line.shape[0])
self.x_curve = interpolate.interp1d(x, y, 'linear')
y 是我的数据。
为了得到相反的结果,我尝试了:
self.x_curve = interpolate.interp1d(sorted(y), x, 'linear')
但值已关闭。
然后我继续尝试使用 UnivariateSpline 并获取根以找到 FWHM(来自此问题:Finding the full width half maximum of a peak),但 root() 方法一直给我一个空列表 []。
这是我用的:
x_curve = interpolate.UnivariateSpline(x, y)
r = x_curve.roots()
print(r)
这是数据的图像(使用 UnivariateSpline):
有什么想法吗?谢谢。
【问题讨论】:
标签: python image-processing scipy interpolation spline