正如我在一篇评论中指出的,您的代码可以使用必要的库1:1翻译成python。你需要numpy代表^{}/^{},matplotlib.pyplot代表^{},scipy.interpolate代表^{}。我本来想说“^{} is available but don't use it,但结果证明你需要在输入数据的凸包之外进行外推法,所以griddata不会切断它。这是一个含有^{}的解决方案,但结果是一粒盐:
import numpy as np
import scipy.interpolate as interp
import matplotlib.pyplot as plt
# input
xv = np.array([1, 3, 5])
yv = np.array([0.1, 0.4, 0.5, 0.7])
x,y = np.meshgrid(xv,yv)
M = np.random.rand(4,3)
xqv = np.arange(1,6)
yqv = np.arange(0.1,1.1,0.1)
xq,yq = np.meshgrid(xqv,yqv)
zqfun = interp.interp2d(x,y,M)
zq = zqfun(xqv,yqv)
plt.figure()
#h = plt.pcolor(xq,yq,zq)
h = plt.pcolormesh(xq,yq,zq) # < same thing but faster
正如我在一篇评论中指出的,您的代码可以使用必要的库1:1翻译成python。你需要} /^{} ,} ,} 。我本来想说“^{} is available but don't use it ,但结果证明你需要在输入数据的凸包之外进行外推法,所以} 的解决方案,但结果是一粒盐:
numpy
代表^{matplotlib.pyplot
代表^{scipy.interpolate
代表^{griddata
不会切断它。这是一个含有^{结果(左)与您的MATLAB原始版本(右;在
interp2d
中修正x,y,M
顺序后):您可以看到结果的不同,这是因为MATLAB总是丢弃数据的最后一行和最后一列,而matplotlib则没有
相关问题 更多 >
编程相关推荐