一、前言
首先,大家放松放松,先看一个函数,meshgrid
[X,Y] = meshgrid(xgv,ygv)
replicates the grid vectorsxgv
andygv
to produce a full grid. This grid is represented by the output coordinate arraysX
andY
. The output coordinate arraysX
andY
contain copies of the grid vectorsxgv
andygv
respectively. The sizes of the output arrays are determined by the length of the grid vectors. For grid vectorsxgv
andygv
of lengthM
andN
respectively,X
andY
will haveN
rows andM
columns.
就是说复制完整的xgv向量和ygv向量,生成网格, 输出数组的大小由网格矢量的长度决定。
实例1
问题1:绘制
MATLAB求解
>> clear
>> [X,Y]=meshgrid(-2:0.1:2,-2:0.1:2);
>> z=exp(-X.^2-Y.^2);
>> mesh(X,Y,z)%线框图
警告: MATLAB 已通过改用 OpenGL 软件禁用了某些高级的图形渲染功能。欲了解有关详细信息,请点击此处。
>> figure
>> surf(X,Y,z)%表面图
>> shading interp%对曲面或图形对象颜色着色并进行色彩的插值处理,使色彩平滑过渡。
输出结果1:
输出结果2:
为什么会举这个例子呢?是因为我发现meshgrid函数真的不太简单理解。
例如:
[x,y]=meshgrid(0:2,0:3)
看结果:
x =
0 1 2
0 1 2
0 1 2
0 1 2
y =
0 0 0
1 1 1
2 2 2
3 3 3
观察发现,x与y都是3×4的矩阵,我推测因为0:2在行的位置,有3个数字所以以行的形式写,因为0:3为4个数字,所以为3×4矩阵,一个以行的形式进行,一个以列的形式进行。
事实上,矩阵元素是以列进行存储的,所以(x,y)为坐标元素,(0,0)为第一个元素,(1,2)为第7个元素。