我有一个 ndarray (Z),在矩形网格 (X, Y) 上有大约 500000 个元素。
现在我想在 x,y 中的大约 100 个位置处插入值,这些位置不一定在网格上。
我有一些在 Matlab 中运行的代码:
data = interp2(X,Y,Z, x,y);
但是,当我尝试对 scipy.interpolate 使用相同的方法时,根据方法的不同,我会收到各种错误。例如,如果我指定,interp2d 会因 MemoryError 失败kind = 'linear'
和“OverflowError:太多数据点无法插入”(如果我指定)kind='cubic'
。我也尝试过Rbf
and bisplev
但他们也失败了。
所以问题是:是否存在允许对大型矩阵进行插值的插值函数?问题还有其他解决方案吗?
(或者我是否必须编写一个函数来选择要插值的点周围的合适区域,然后调用 interp2d?)
另外:如何处理复数?
由于您的数据位于网格上,因此您可以使用矩形二元样条.
要处理复数,您可以进行插值data.real
and data.imag
单独(FITPACK 例程 IIRC 不处理复杂数据)。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)