meshgrid


 

說明

示例

[X,Y] = meshgrid(x,y) 基於向量 x 和 y 中包含的坐標返回二維網格坐標。X 是一個矩陣,每一行是 x 的一個副本;Y 也是一個矩陣,每一列是 y 的一個副本。坐標 X 和 Y 表示的網格有 length(y) 個行和 length(x) 個列。

示例

[X,Y] = meshgrid(x) 與 [X,Y] = meshgrid(x,x) 相同,並返回網格大小為 length(x)×length(x) 的方形網格坐標。

示例

[X,Y,Z] = meshgrid(x,y,z) 返回由向量 xy 和 z 定義的三維網格坐標。XY 和 Z 表示的網格的大小為 length(y)×length(x)×length(z)

示例

[X,Y,Z] = meshgrid(x) 與 [X,Y,Z] = meshgrid(x,x,x) 相同,並返回網格大小為 length(x)×length(x)×length(x) 的三維網格坐標。

 

示例

全部折疊

二維網格

使用向量 x 定義的 x 坐標和向量 y 定義的 y 坐標創建二維網格坐標。

x = 1:3;
y = 1:5;
[X,Y] = meshgrid(x,y)
X = 5×3

     1     2     3
     1     2     3
     1     2     3
     1     2     3
     1     2     3

Y = 5×3

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

在二維網格上計算表達式 x2+y2。

X.^2 + Y.^2
ans = 5×3

     2     5    10
     5     8    13
    10    13    18
    17    20    25
    26    29    34

 
 

繪制曲面圖

使用均勻分布的 x 坐標和 y 坐標在區間 [-2,2] 內創建二維網格。

x = -2:0.25:2;
y = x;
[X,Y] = meshgrid(x);

在二維網格上計算並繪制函數 f(x,y)=xex2y2。

F = X.*exp(-X.^2-Y.^2);
surf(X,Y,F)

從 R2016b 開始,操作網格之前並不總是需要先創建網格。例如,計算表達式 xex2y2 將隱式擴展向量 x 和 y。有關隱式擴展的詳細信息,請參閱數組與矩陣運算

surf(x,y,x.*exp(-x.^2-(y').^2))

 
 

三維網格

在區間 [0,6] 內使用定義的 xy 和 z 坐標創建三維網格坐標,並計算表達式 x2+y2+z2。

x = 0:2:6;
y = 0:1:6;
z = 0:3:6;
[X,Y,Z] = meshgrid(x,y,z);
F = X.^2 + Y.^2 + Z.^2;

確定網格的大小。三個坐標向量具有不同的長度,構成一個網格點矩形框。

gridsize = size(F)
gridsize = 1×3

     7     4     3

使用單輸入語法,基於 x 中定義的坐標生成均勻分布的三維網格。新網格構成一個網格點正方體。

[X,Y,Z] = meshgrid(x);
G = X.^2 + Y.^2 + Z.^2;
gridsize = size(G)
gridsize = 1×3

     4     4     4

 
 

輸入參數

全部折疊

x - 點的 x 坐標
向量

點的 x 坐標,指定為向量。

數據類型: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

y - 點的 y 坐標
向量

點的 y 坐標,指定為向量。

數據類型: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

z - 點的 z 坐標
向量

點的 z 坐標,指定為向量。

數據類型: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

輸出參數

全部折疊

X - 網格上的 x 坐標
二維或三維數組

網格上的 x 坐標,以二維數組(兩個輸入)或三維數組(三個輸入)的形式返回。

Y - 網格上的 y 坐標
二維或三維數組

網格上的 y 坐標,以二維數組(兩個輸入)或三維數組(三個輸入)的形式返回。

Z - 網格上的 z 坐標
三維數組

網格上的 z 坐標,以三維數組形式返回。

 

****************************************************************************************************************************************************************************************************************

  • 函數功能

    生成繪制3D圖形所需的 網格數據。在計算機中進行繪圖操作時, 往往需要一些 采樣點,然后根據這些采樣點來繪制出整個圖形。在進行3D繪圖操作時,涉及到x、y、z三組數據,而x、y這兩組數據可以看做是在Oxy平面內對坐標進行采樣得到的坐標對(x, y)
    例如, 要在“3<=x<=5,6<=y<=9,z不限制 區間” 這個區域內繪制一個3D圖形,如果只需要整數坐標為采樣點的話。我們可能需要下面這樣一個坐標構成的 矩陣
    (3,9),(4,9),(5,9);
    (3,8),(4,8),(5,8);
    (3,7),(4,7),(5,7);
    (3,6),(4,6),(5,6);
    在matlab中我們可以這樣描述這個坐標矩陣:
    把各個點的x坐標獨立出來,得:
    3,4,5;
    3,4,5;
    3,4,5;
    3,4,5;
    再把各個點的y坐標也獨立出來:
    9,9,9;
    8,8,8;
    7,7,7;
    6,6,6;
    這樣對應的x、y結合,便表示了上面的坐標 矩陣meshgrid就是產生這樣兩個矩陣,來簡化我們的操作。然后根據(x, y)計算獲得z,並繪制出三維圖形。
    在Matlab命令窗口中鍵入type meshgrid可以查看該函數的 源代碼(由此可以理解meshgrid的算法思想), 鍵入doc meshgrid或者help meshgrid可以獲得幫助文檔。

    語法

    [X,Y] =  meshgrid(x,y)
    解釋:輸出X的每一行的數值都是復制的x的值;輸出Y的每一列的數值都是復制的y的值。
    [X,Y]=meshgrid(x)與[X,Y]=meshgrid(x,x)是等同的
    [X,Y,Z]=meshgrid(x,y,z)生成三維 數組,可用來計算三變量的函數和繪制三維立體圖
    相關函數: plot3、 meshsurf、automesh、 ndgrid

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM