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則適合於多維之系統。
沒有留言:
張貼留言