样条插值的我写的IDL代码:差异IDL和Python
zz= [ 0, 5, 10, 15, 30, 50, 90, 100, 500]
uz= [ 20, 20, 20, 30, 60, 90, 30, -200, -200]*(-1.)
zp= findgen(120)*500+500
up= spline((zz-10.),uz,(zp/1000.0))
print, up
和IDL给我的值高达阵列约-20至500
。同样我确实在Python
import numpy as npy
zz = npy.array([ 0, 5, 10, 15, 30, 50, 90, 100, 500])
uz = npy.array([ 20, 20, 20, 30, 60, 90, 30, -200, -200])*(-1.)
zp = npy.arange(0,120)*500+500
from scipy.interpolate import interp1d
cubic_interp_u = interp1d(zz-10., uz, kind='cubic')
up = cubic_interp_u(zp/1000)
print up
,它给了我了与价值观从约-20到-160。任何想法?提前致谢!
对于初学者,您可以在数据点上绘制插值结果,并查看是否有意义,或者是否完全无意义。另外,你可能想要仔细检查IDL和scipy/numpy是否将整数数组作为它们的例程相同(即,它们是否都会自动将其输入转换为浮点数?) – Evert
@Evert:是的,谢谢。绘制结果是一个好主意。我已经完成了,图片显示在这里。请看一看。我猜Python的内插函数无法捕捉到我的配置文件。但是,我仍然不知道要修改它!请帮助你! –
显示图片,在哪里?你的个人资料是什么意思? –