转自:http://www.cnblogs.com/haore147/p/3633086.html

meshgrid用于从数组a和b产生网格。生成的网格矩阵A和B大小是相同的。它也可以是更高维的。这里的大小指的是,size()函数的大小,size()函数返回的是一个向量, 那么size(A) = size(B).

[A,B]=Meshgrid(a,b)
生成size(b)Xsize(a)大小的矩阵A和B。它相当于a从一行重复增加到size(b)行,把b转置成一列再重复增加到size(a)列

因此命令等效于:

1 A=ones(size(b))*a;
2 B=b'*ones(size(a))

如下所示:

 1 >> a=[1:2]
 2  
 3 a =
 4  
 5      1     2
 6  
 7 >> b=[3:5]
 8  
 9 b =
10  
11      3     4     5
12  
13 >> [A,B]=meshgrid(a,b)
14  
15 A =
16  
17      1     2
18      1     2
19      1     2
20  
21  
22 B =
23  
24      3     3
25      4     4
26      5     5
27  
28   
29  
30 >> [B,A]=meshgrid(b,a)
31  
32 B =
33  
34      3     4     5
35      3     4     5
36  
37  
38 A =
39  
40      1     1     1
41      2     2     2
 

举个实例:For example, to evaluate the function: x*exp(-x^2-y^2)

                   over the range -2 < x < 2, -2 < y < 2,

                   [X,Y] = meshgrid(-2:.2:2, -2:.2:2);

                   Z = X .* exp(-X.^2 - Y.^2);

                   mesh(X,Y,Z)

对于三维网格,生成方式与二维一样 :[x y z]=meshgrid(a b c) ; %算出的结果根据二维的类推

 

附件:二维网格例子的结果图。