2024-04-26 13:14:49 发布
网友
我需要这个Matlab function的Python等价函数来插值矩阵。
在Matlab中,我有:
interp2(X, Y, Z, XI, YI)
在纽约的时候我有:
interp2d(X, Y, Z).
西比锡和伊失踪了。我该怎么解决?我用的是Matlab中的所有参数。
正确的语法是ip = interp2d(x, y, z); zi = ip(xi, yi)。
ip = interp2d(x, y, z); zi = ip(xi, yi)
而且,interp2d与interp2也不完全相同。RectBivariateSpline更近了。
interp2d
interp2
Interp2d输出另一个函数,允许您调用Xi和Yi。但是,小心!它将它们计算为矩阵,而不是标量。您必须使用for循环来分别计算Xi和Yi的每一对值,并获得与MATLAB相同的行为。
F=interpolate.interp2d(X,Y,Z) Zi=[] for i, j in zip(Xi,Yi) Zi.append(F(i,j))
我也遇到过同样的问题,并发现scipy.ndimage.map_coordinates与Vq = interp2(V,Xq,Yq)的作用相同。请阅读这些命令的文档,以找到适合您的案例的解决方案。
scipy.ndimage.map_coordinates
Vq = interp2(V,Xq,Yq)
在Matlab的Vq = interp2(V,Xq,Yq)中试试这个:
Vq = scipy.ndimage.map_coordinates(V, [Xq.ravel(), Yq.ravel()], order=3, mode='nearest').reshape(V.shape)
正确的语法是
ip = interp2d(x, y, z); zi = ip(xi, yi)
。而且,
interp2d
与interp2
也不完全相同。RectBivariateSpline更近了。Interp2d输出另一个函数,允许您调用Xi和Yi。但是,小心!它将它们计算为矩阵,而不是标量。您必须使用for循环来分别计算Xi和Yi的每一对值,并获得与MATLAB相同的行为。
我也遇到过同样的问题,并发现
scipy.ndimage.map_coordinates
与Vq = interp2(V,Xq,Yq)
的作用相同。请阅读这些命令的文档,以找到适合您的案例的解决方案。在Matlab的
Vq = interp2(V,Xq,Yq)
中试试这个:相关问题 更多 >
编程相关推荐