在Matlab中,我可以使用“样条”插值方法,这是我在python中找不到的3D数据的方法。存在scipy.interpolate.griddata,但它没有用于3D数据的spline选项。我要插值的数据是一个3D矩阵(51x51x51),它规则地分布在3D网格上。scipy.interpolate.Rbf可能是一个选项,但我不会让它工作:
xi = yi = zi = np.linspace(1, 132651, 132651) interp = <
我有一个数据集data[xi,yi,zi],我想要绘制(用插值值)。使用scipy.interpolate,一切看起来几乎是完美的,但是插值产生的值超出了输入数据的范围。例如,假设zi受0 < zi < 1约束,径向基函数插值似乎返回超出界限的插值值(例如>1);在这里,我简化了尝试:data=[xi yi zi]
xis = np.linspace
在用RBF进行插值时,我得到了一些误差。这里是一个1D的例子。我认为这与我的y值之间的距离有多近有关。有什么解决办法吗?import numpy as npimport matplotlib.pyplot as plt
xi = np.linspace(min(x),max(x),1000)
plt.plot(x,y,
我有一个直线(非规则)数据网格(x,y,V),其中V是位置(x,y)处的值。我想使用此数据源来插值我的结果,这样我就可以填补空白,并在将来绘制插值的值(在范围内)。(我还需要网格数据的功能来检查范围内的任意值)。 我看了SciPy和here上的文档。这是我尝试过的,结果是: It clearly doesn't match the data. # INTERPOLATION ATTEMPT?from <em
我正在尝试使用Rbf插值数据。我需要的输出数据实际上是一个单值。所以我用了像这样的东西y=numpy.array([200])rbfi=scipy.interpolate.Rbf(x,y,d)ValueError: array must not contain infs or NaNs
有人知道如何解决这个问题吗?