meshgrid是MATLAB中用于生成网格采样点的函数。在使用MATLAB进行3-D图形绘制方面有着广泛的应用。
详细解释:help meshgrid
meshgrid用于从数组a和b产生网格。生成的网格矩阵A和B大小是相同的。它也可以是更高维的。
[A,B]=Meshgrid(a,b)
生成size(b)Xsize(a)大小的矩阵A和B。它相当于a从一行重复增加到size(b)行,把b转置成一列再重复增加到size(a)列。因此命令等效于:
A=ones(size(b))*a;
B=b'*ones(size(a))
如下所示:
>> a=[1:2]
a =
1 2
>> b=[3:5]
b =
3 4 5
>> [A,B]=meshgrid(a,b)
A =
1 2
1 2
1 2
B =
3 3
4 4
5 5
>> [B,A]=meshgrid(b,a)
B =
3 4 5
3 4 5
A =
1 1 1
2 2 2
我们自己也可以测试一下:
在MATLAB命令行中,输入一下内容~
x = rand(3, 4);
y = rand(2, 3);
[X, Y] = meshgrid(x, y)
回车后,会产生如下数据:
x =
0.4039 0.9421 0.0598 0.8212
0.0965 0.9561 0.2348 0.0154
0.1320 0.5752 0.3532 0.0430
y =
0.1690 0.7317 0.4509
0.6491 0.6477 0.5470
X=
0.4039 0.0965 0.1320 0.9421 0.9561 0.5752 0.0598 0.2348 0.3532 0.8212 0.0154 0.0430
0.4039 0.0965 0.1320 0.9421 0.9561 0.5752 0.0598 0.2348 0.3532 0.8212 0.0154 0.0430
0.4039 0.0965 0.1320 0.9421 0.9561 0.5752 0.0598 0.2348 0.3532 0.8212 0.0154 0.0430
0.4039 0.0965 0.1320 0.9421 0.9561 0.5752 0.0598 0.2348 0.3532 0.8212 0.0154 0.0430
0.4039 0.0965 0.1320 0.9421 0.9561 0.5752 0.0598 0.2348 0.3532 0.8212 0.0154 0.0430
0.4039 0.0965 0.1320 0.9421 0.9561 0.5752 0.0598 0.2348 0.3532 0.8212 0.0154 0.0430
Y =
0.1690 0.1690 0.1690 0.1690 0.1690 0.1690 0.1690 0.1690 0.1690 0.1690 0.1690 0.1690
0.6491 0.6491 0.6491 0.6491 0.6491 0.6491 0.6491 0.6491 0.6491 0.6491 0.6491 0.6491
0.7317 0.7317 0.7317 0.7317 0.7317 0.7317 0.7317 0.7317 0.7317 0.7317 0.7317 0.7317
0.6477 0.6477 0.6477 0.6477 0.6477 0.6477 0.6477 0.6477 0.6477 0.6477 0.6477 0.6477
0.4509 0.4509 0.4509 0.4509 0.4509 0.4509 0.4509 0.4509 0.4509 0.4509 0.4509 0.4509
0.5470 0.5470 0.5470 0.5470 0.5470 0.5470 0.5470 0.5470 0.5470 0.5470 0.5470 0.5470
因为rand(3, 4)会自动生成一个3行4列的矩阵,且矩阵中的元素大小在0~1之间
rand(2, 3)会自动生成一个2行3列的矩阵,且矩阵中的元素大小在0~1之间~~
这样就相当于x轴有3*4即有12个元素,y轴有6个元素,
所以,在调用meshgrid时,X、Y矩阵会有6行12列,
在XOY平面,会产生 72 个点。。。
[X,Y]=meshgrid(-4:0.5:22,-11:0.5:10);
调用这个语句时,X轴方向会有26*2=52个点
Y轴方向会有21*2=42个点,
所以,我们绘制的三维图像网格中,会有52*42=2184个点