函數簡介
函數功能
生成繪制3-D圖形所需的網格數據。在計算機中進行繪圖操作時,往往需要一些采樣點,然後根據這些采樣點來繪制出整個圖形。在進行3-D繪圖操作時,涉及到x、y、z三組數據,而x、y這兩組數據可以看做是在Oxy平面内對坐标進行采樣得到的坐标對(x,y)。
例如,要在“3<=x<=5,6<=y<=9,z不限制區間”這個區域内繪制一個3-D圖形,如果隻需要整數坐标為采樣點的話。我們可能需要下面這樣一個坐标構成的矩陣:
(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)
上面的描述,我們可以知道,meshgrid返回的兩個矩陣X、Y必定是行數、列數相等的,且X、Y的行數都等
于輸入參數y中元素的總個數,X、Y的列數都等于輸入參數x中元素總個數(這個結論可以通過查看meshgrid的源代碼得到,可以通過示例程序得到驗證)。
[X,Y]=meshgrid(x)與[X,Y]=meshgrid(x,x)是等同的
[X,Y,Z]=meshgrid(x,y,z)生成三維數組,可用來計算三變量的函數和繪制三維立體圖
相關函數:plot3、mesh、surf、automesh、ndgrid
程序示例
示例一:
x=-3:1:3;y=-2:1:2;
[X,Y]= meshgrid(x,y);
這裡meshigrid(x,y)的作用是産生一個以向量x為行,向量y為列的矩陣,而x是從-3開始到3,每間隔1記下一個數據,并把這些數據集成矩陣X;同理y則是從-2到2,每間隔1記下一個數據,并集成矩陣Y。即
X=
-3 -2 -1 0 1 2 3
-3 -2 -1 0 1 2 3
-3 -2 -1 0 1 2 3
-3 -2 -1 0 1 2 3
-3 -2 -1 0 1 2 3
Y=
-2 -2 -2 -2 -2 -2 -2
-1 -1 -1 -1 -1 -1 -1
0 0 0 0 0 0 0
1 1 1 1 1 1 1
2 2 2 2 2 2 2
示例二:
function main
close all;clear;CLC;
M1;M2;
end
function M1
x = rand(3,4);
y = rand(2,3);
size_of_x=size(x)
size_of_y=size(y)
[X,Y]=meshgrid(x,y);
size_of_X=size(X)
size_of_Y=size(Y)
end
function M2
x=rand(3,4,2);
y=rand(2,3);
size_of_x=size(x)
size_of_y=size(y)
[X,Y]=meshgrid(x,y);
size_of_X=size(X)
size_of_Y=size(Y)
end
輸出結果:
size_of_x=
3 4
size_of_y=
2 3
size_of_X=
6 12
size_of_Y=
6 12
size_of_x=
3 4 2
size_of_y=
2 3
size_of_X=
6 24
size_of_Y=
6 24



















