11/22/2006

10.8.4 三維網絡格點Meshgrid

meshgrid指令



建立 X與 Y矩陣,以產生三維空間圖。

語法:


[X,Y] = meshgrid(x,y)
[X,Y] = meshgrid(x)
[X,Y,Z] = meshgrid(x,y,z)


說明



這是一個準備網絡點之事前指令,提供後續指令如mesh、surf指令所需之基本資料。此指令利用獨立之兩維向量 x 與 y,將其轉換為 X與Y之對應網絡座標。其結果是:X之諸列為x向量之複製;Y值內之行向量則是複製y向量。

>> [X,Y]=meshgrid(3:8,1:6)

X =

3 4 5 6 7 8
3 4 5 6 7 8
3 4 5 6 7 8
3 4 5 6 7 8
3 4 5 6 7 8
3 4 5 6 7 8


Y =

1 1 1 1 1 1
2 2 2 2 2 2
3 3 3 3 3 3
4 4 4 4 4 4
5 5 5 5 5 5
6 6 6 6 6 6

若將Z值作成下列函數關係,例如:

  z = x e(-x²-y²)

依據此函數,製成網點後,求得對應z值,並以mesh(z)執行結果如下:

>> [X,Y] = meshgrid(-2:.2:2, -2:.2:2);
>> z=X.*exp(-X.^2-Y.^2);mesh(z)



若輸入參數僅x一項,則其結果與下面之型式相同:

 [X,Y] = meshgrid(x) 與 [X,Y] = meshgrid(x,x)之結果相同。例如:

>> [X,Y]=meshgrid(1:5)

X =

1 2 3 4 5
1 2 3 4 5
1 2 3 4 5
1 2 3 4 5
1 2 3 4 5


Y =

1 1 1 1 1
2 2 2 2 2
3 3 3 3 3
4 4 4 4 4
5 5 5 5 5


同理,[X,Y,Z] = meshgrid(x,y,z) 是以三維陣列向量輸入,由此計算其相關函數之圖型。

值得注意的是,除meshgrid這個製造網點之指令外,另有一個類似指令稱為ndgrid。兩個指令之功能大致相同,只是其輸入之向量位置對換。因此,下面之指令

[X,Y,Z] = meshgrid(x,y,z)

其所產生之結果應與下一個ndgrid之指令相同:

[Y,X,Z] = ndgrid(y,x,z)

只是,meshgrid指令較適合於二維或三維向量之空間,而ndgrid則適合於多維之系統。