我试图在某个用户定义的、连续的 2D x,y 位置插入在常规笛卡尔网格 (i,j) 上定义的 2D 函数的值。
我尝试过的是使用 scipy.interpolate 中的函数 interp2d 来获得一个函数,该函数将通过使用适当的模型进行插值,在 (x,y) 处返回 f 值。
请参阅文档:
http://docs.scipy.org/doc/scipy/reference/generated/scipy.interpolate.interp2d.html
以下代码重现了我遇到的错误。似乎 interp2d 崩溃是因为它无法分配那么多内存。
知道如何否则可以做到吗?
import scipy.interpolate as interp
import numpy as np
def main():
x = np.arange(4098)/4097.
z = np.arange(1602)/1601.
xx,zz = np.meshgrid(x,z)
f = np.sin(xx**2 + zz**2)
ff = interp.interp2d(x,z,f, kind='linear')
if __name__ == '__main__':
main()