2016-08-23 78 views
0

使用Python 2.7與miniconda解釋器。我很困惑在下面的陳述中用什麼方式表示N-D座標,並且有人可以告訴我們如何計算下面的樣本xvyv,這將很好。由numpy meshgrid輸出困惑

「在給定一維座標陣列x1,x2,...,xn的情況下,使N-D座標陣列用於在N-D網格上矢量化N-D標量/矢量場的矢量化評估。

http://docs.scipy.org/doc/numpy/reference/generated/numpy.meshgrid.html

>>> nx, ny = (3, 2) 
>>> x = np.linspace(0, 1, nx) 
>>> y = np.linspace(0, 1, ny) 
>>> xv, yv = meshgrid(x, y) 
>>> xv 
array([[ 0. , 0.5, 1. ], 
     [ 0. , 0.5, 1. ]]) 
>>> yv 
array([[ 0., 0., 0.], 
     [ 1., 1., 1.]]) 

問候, 林

回答

1

xv,yv被簡單地定義爲:

xv = np.array([x for _ in y]) 
yv = np.array([y for _ in x]).T 

因此,對於每一個索引對(i,j),你有

xv[i,j] = x[i] 
yv[i,j] = y[j] 

這對繪製2D地圖特別有用。

+0

另一個困惑是,爲什麼在這個例子中,它被寫爲'nx,ny =(3,2)'?它聽起來像一個元組(3,2),但實際上我認爲'nx'和'ny'是一個標量整型變量('x = 3'和'y = 2')? –

+1

'nx,ny'是一個元組。 (nx,ny)=(3,2)','nx,ny =(3,2)','(nx,ny)= 3,2','nx,ny = 3, 2'。你正在給另一個分配一個元組,這意味着'nx = 3'和'ny = 2'。這也被稱爲「拆包」。 – Julien

+0

但是,爲什麼使用'xv'和'yv'繪製2D地圖是有用的? –