一、meshgrid()函数基本调用格式
meshgrid函数用来生成网格矩阵,既可以是二维网格矩阵,又可以是三维网格矩阵。
1、[X,Y] = meshgrid(x,y) :基于向量x和y中包含的坐标返回二维网格坐标。X是一个矩阵,每一行是x的一个副本,Y也是一个矩阵,每一列是y的一个副本。坐标X和Y表示的网格有length(y)个行和length(x)个列。
2 、[X,Y] = meshgrid(x) 与 [X,Y] = meshgrid(x,x)相同,返回网格大小为length(x)*length(x)的方形网格矩阵。
3、 [X,Y,Z] = meshgrid(x,y,z),返回由向量x,y,z定义的三维网格坐标,X,Y和Z表示的网格大小为length(x)*length(y)*length(z)。
二、meshgrid()函数应用实例
(1)[X,Y] = meshgrid(x,y)
>> m=1:5;
>> n=2:7;
>> [A,B]=meshgrid(m,n)
运行结果:
A是一个6*5矩阵, B 是一个 6 * 5矩阵,注意A的行是m的值,B的列是n的值。
A =
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
1 2 3 4 5
B =
2 2 2 2 2
3 3 3 3 3
4 4 4 4 4
5 5 5 5 5
6 6 6 6 6
7 7 7 7 7
即A中的每个点对应的是x轴的坐标点,B中的每个点对应的是y轴的坐标点,即有(1,2),(2,2),(3,2),(4,2),(5,2),…,(1,7),(2,7),(3,7),(4,7),(5,7)。
(2)[X,Y] = meshgrid(x)
>> m=1:3;
>> [A,B]=meshgrid(m)
注意[A,B]=meshgrid(m)d等同于[A,B]=meshgrid(m,m)。
运行结果:
A =
1 2 3
1 2 3
1 2 3
B =
1 1 1
2 2 2
3 3 3
(3)[X,Y,Z] = meshgrid(x,y,z)
>>x = 0:2:6;
>>y = 0:1:6;
>>z = 0:3:6;
>>[X,Y,Z] = meshgrid(x,y,z)
运行结果:
X(:,:,1) =
0 2 4 6
0 2 4 6
0 2 4 6
0 2 4 6
0 2 4 6
0 2 4 6
0 2 4 6
X(:,:,2) =
0 2 4 6
0 2 4 6
0 2 4 6
0 2 4 6
0 2 4 6
0 2 4 6
0 2 4 6
X(:,:,3) =
0 2 4 6
0 2 4 6
0 2 4 6
0 2 4 6
0 2 4 6
0 2 4 6
0 2 4 6
Y(:,:,1) =
0 0 0 0
1 1 1 1
2 2 2 2
3 3 3 3
4 4 4 4
5 5 5 5
6 6 6 6
Y(:,:,2) =
0 0 0 0
1 1 1 1
2 2 2 2
3 3 3 3
4 4 4 4
5 5 5 5
6 6 6 6
Y(:,:,3) =
0 0 0 0
1 1 1 1
2 2 2 2
3 3 3 3
4 4 4 4
5 5 5 5
6 6 6 6
Z(:,:,1) =
0 0 0 0
0 0 0 0
0 0 0 0
0 0 0 0
0 0 0 0
0 0 0 0
0 0 0 0
Z(:,:,2) =
3 3 3 3
3 3 3 3
3 3 3 3
3 3 3 3
3 3 3 3
3 3 3 3
3 3 3 3
Z(:,:,3) =
6 6 6 6
6 6 6 6
6 6 6 6
6 6 6 6
6 6 6 6
6 6 6 6
6 6 6 6
(4)在二维网格上画图
[x,y] = meshgrid(1:0.5:10,1:20);
z = sin(x) + cos(y);
surf(x,y,z); % surf() 函数用于绘制三维阴影曲面图
运行效果: