MATLAB中mesh和surf的区别

在MATLAB中mesh和surf都可以用来做三维空间的图,但是两个图具体的差别是什么呢?

[X,Y,Z] = peaks(25);
figure(1);
surf(X,Y,Z);
figure(2);
mesh(X,Y,Z);

figure(1):

figure(2):

总结:mesh和surf命令都可以绘出空间内的完整曲面,使用方法也类似,不同的是

     surf命令绘制得到的是着色的三维曲面(黑色线,彩色面);

     mesh命令绘制的图形是一个一排排的彩色曲线组成的网格图(彩色线,白色面)。

详细使用方法见MATLAB帮助文档。

此外,这也 会导致另一种可见的情况,当数据构成的线“太密了”,这时候会导致surf画出的图像是全黑的,而mesh画出的图像是彩色的。如下:

x=-2:0.01:4;y=x;
[X,Y]=meshgrid(x,y);
Z=X.^2+Y.^2;
ii=find(Z>4);
Z(ii)=NaN;
figure(3);
surf(X,Y,Z); 
figure(4);
mesh(X,Y,Z); 

 figure(3)

figure(4)

所以,在实际情况中选择适合自己的函数来实现绘图。

原文地址:https://www.cnblogs.com/pupilLZT/p/14041352.html