2
我目前插值用三次样条函数的测量如图所示的画面:更Python的方式寻找曲线交点
的想法是我想要找的全宽半最大插值的。对于我使用的一小段代码
f = interpolate.interp1d(hhg_data, signal_array, kind='cubic')
idx2 = np.argsort(np.abs(f(hhg_interp)-0.5))
返回我的路口排序指标与线y=0.5
。但是,我想要在曲线的左边缘和右边缘的解决方案,有时它会给我两个连续的点。有没有一种优雅的pythonic方式来避免这种情况?至少比我的哈克解决方案好多了:
idx_sorted = []
counter = 0
counter2 = 0
while(counter <= 1):
if idx2[counter2] != idx2[counter2-1]+1 and idx2[counter2] != idx2[counter2-1]-1:
idx_sorted.append(idx2[counter2])
counter+=1
counter2+=1
谢谢你的回答!
不太确定,hhg_interp基本上是一个x轴变量的np.array。在这种情况下,你可以把它作为hhg_interp = linspace(18.5,19.5,10000),只需要一个精细的网格来绘制f。 – Roland
增加了一些用于计算左右边缘索引的代码以及一些注释。这有助于澄清? – cobaltfiftysix
好的,我明白了。感谢它的工作很好。也许我会解决这个想法,最好的适应我的兴趣。 – Roland