matlab 中 等高线的绘制

来源:百度知道 编辑:UC知道 时间:2024/07/03 01:36:18
在MATLAB中进行等高线的绘制,例如:对等高线的标注以及绘制。
对于函数contour也有使用。能否帮帮举个例子。

举个例子,画z=sin(x)+exp(y)的等高线

%生成数据,如果你已经有数据的话就不用生成了
[x,y]=meshgrid(linspace(-2,2));
z=sin(x)+exp(y);

%最简单的等高线
contour(x,y,z)

%如果要指定等高线条数
contour(x,y,z,10)%画10条等高线

%如果要显示等高线的值
[c,h]=contour(x,y,z);
set(h,'ShowText','on')%显示等高线的值

%如果要指定等高线的值
[c,h]=contour(x,y,z);
set(h,'ShowText','on','LevelList',[-.7 -.5 -.3 0 .5 1 2 4 7])%设定等高线的值

最近有人问我,如何实现有正负数的等高线,也就是说:

正数用实线表示

负数用虚线表示

程序如下:

[x,y] = meshgrid(-2:0.1:2);
z = y.*exp(-x.^2-y.^2);
z1=z;
z2=z;
z1(z1<0)=0;
z2(z2>0)=0;

contour(x,y,z1,50,'-');
hold on
contour(x,y,z2,50,':');