MATLAB图形绘制--等高线图

等高线图

假如我们要绘制某个函数:
函数1
x的取值范围在-5到5之间,y的取值范围在-3到3之间,增量为0.1:

>> [x,y] = meshgrid(-5:0.1:5,-3:0.1:3);

其中meshgrid命令是用来产生网格的
我们也可以先指定增量,然后调用meshgrid命令来生成网格,例如:

>> x = [-5:0.1:5];
>> y = [-3:0.1:3];
>> [X,Y] = meshgrid(x,y);

只不过我们把小写的x,y当成了中间变量,最后的值是X,Y
假如我们绘制的函数是:
函数2
那么我们输入以下命令:

>> z = X.^2 + Y.^2;

现在我们调用contour命令:

>> contour(X,Y,z)

产生的图像:等高线图1
我们还可以为这个图像添加更多的内容:

  • 标签
  • 等高线之间的宽度
  • 线宽
  • 线型
  • 线的颜色
  • 需不需填充
    以上属性的修改可以使用set命令修改
    需要注意的是,我们返回当前图像的属性时,因为是二维的网格,所以就有两个参数,我们可以用矩阵的形式表示:
>> [C,h] = contour(X,Y,z)

其中共有两个参数:

  • C
    其中第一个参数表示x,y坐标的矩阵,是一个二维数组
    第一个参数

  • h
    h表示一些属性:
    第二个参数
    当然,这两个参数的名字我们也可用其它字母替代,只要放在一个数组里面就行。
    我们调用set命令:

>> set(h,'showtext','on','textstep',get(h,'levelstep')*2)

这一次,我们为等高线图添加了标签:

添加标签的等高线图
让我们绘制另一个函数:
函数3

>> [x,y] = meshgrid(-5:0.1:5,-3:0.1:3);
>> 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)

三维
这一次我们绘制另一个函数,xy的取值范围相同:
自变量范围相同

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

当两个独立变量在同一范围的时候,可以把:
[x,y] = meshgrid(x)
相同区间
下面我们绘制三维:
仅仅输入:

>> contour3(x,y,z)

便得到:

三维i

发布了84 篇原创文章 · 获赞 18 · 访问量 5805

猜你喜欢

转载自blog.csdn.net/qq_44486550/article/details/105292171
今日推荐