代码改变世界

matlab画等高线图( z = f(x,y) )

2019-03-29 10:07  不做程序猿  阅读(6742)  评论(0编辑  收藏  举报

步骤:

1、产生独立变量,为带有两个变量 x 和 y 的集合,meshgrid是一个可以建立独立变量的函数,产生矩阵元素,元素x和y按照指定的范围和增量来产生。

2、输入要使用的函数;

3、调用contour(x,y,z)命令。

 

例如为z = x2+y2作等高线图:

[x,y] = meshgrid(-5:0.1:5, -3:0.1:3);
z = x.^2 + y.^2;
contour(x,y,z);

 

但应该为其添加更多引用标签信息,可以使用set命令来实现:

[C,h] = contour(x,y,z);

set(h, 'ShowText', 'on', 'TextStep', get(h,'LevelStep')*2);

 

例如为z = cos(x)*sin(y)作等高线图:

z = cos(x).*sin(y);
[C,h] = contour(x,y,z);
set(h, 'ShowText','on','TextStep',get(h,'LevelStep')*2);

 

我们还可以调用contour3命令把等高线画成三维的,如果调用contour3(z,n),那么将产生有n个级别的等高线,

例如接着上面的函数继续调用 contour3(z,10); 可产生更复杂的三维图像。

 

例如为z = ye-(x2+y2)作等高线图,-2≤x,y≤2:

[x,y] = meshgrid(-2:0.1:2);
z = y.*exp(-x.^2-y.^2);
contour(x,y,z),xlabel('x'),ylabel('y');

下面要产生三维等高线图,可输入contour3(x,y,z,30);

也可以添加surface命令,将图像装饰漂亮点:

surface(x,y,z,'EdgeColor',[.8,.8,.8],'FaceColor','none'), grid off, view(-15,20)

最终可产生如下图像: