我试着写一个函数,返回一个插值函数,它在插值范围外线性外推。在看了关于咖喱的帖子后,我不明白为什么我的东西不起作用。我有:
def interpolation(X_list,a_list):
A1=scipy.interpolate.UnivariateSpline(
np.asarray(X_list),
np.asarray(a_list),
k=3,
s=0,
check_finite=True)
m=(((a_list[-1])-(a_list[-2]))
/ ((X_list[-1])-(X_list[-2])))
A1ext= m*X+a_list[-1]-m*X_list[-1]
def a(X):
if X_list[-1]>=X:
return A1
if X>X_list[-1]:
return A1ext
return a(X)
只需返回内部函数
为了缩短它,可以用lambda匿名函数替换该内部函数(
a
):所以现在是:
相关问题 更多 >
编程相关推荐