1. mesh
我们来看看这样一段代码:
[X,Y] = meshgrid(-8:.5:8);
R = sqrt(X.^2 + Y.^2) + eps;
Z = sin(R)./R;
C = gradient(Z);
figure(1),mesh(Z); figure(2),mesh(X,Y,Z); figure(3),mesh(X,Y,Z,C)
这里我们分别得到三幅图:
(1)mesh(Z)
(2)mesh(X,Y,Z)
(3)mesh(X,Y,Z,C)
我们可以看到,第一幅图和第二幅图主要的区别是坐标范围。mesh(Z)坐标范围是1:size(X)和1:size(Y),而mesh(X,Y,Z)的坐标范围是按照X和Y的实际值确定的。
第二幅图和第三幅图的主要区别是色彩,其中C = gradient(Z);表示的是Z的x方向的梯度值矩阵。mesh(X,Y,Z,C)用矩阵C指定的颜色表示网格色彩。为了可以看的更清楚,我将二者的colorbar显示出来。
可以看到矩阵C改变了颜色的显示范围,默认的colormap是jet。
2. surf
为了让对比看的更清楚,我直接用上面的参数:
surf(X,Y,Z)
这样得到的图如下:
大家可以看到,大体上画出的图是一样的,不同的是surf得到的是三维表面图。对表面进行着色的方法是,在得到相应的网格后,对每一网格依据该网格所代表的节点的颜色值。