向大虾求助!matlab中怎么实现隔一定的距离画等高线。。。

并且在等高线上要将数值标注出来。。。
2025-05-13 20:25:33
推荐回答(3个)
回答1:

Q0=0:0.01:2*pi;

r0=0:0.1:10;

Q=repmat(Q0,length(r0),1);

r=repmat(r0',1,length(Q0));

x=r.*cos(Q);

y=r.*sin(Q);

z=x.*x+y.*y;

%以上是任意的构造了一个二元函数,下面做它的等高线

%做等高线一般先取到z的最大值和最小值,两者之差除以你想做的等高线条数,便得到你想要的两条线之间的差距

zmax=max(max(z));

zmin=min(min(z));

%这里取15条,你自己随便取,你想要两线距离一定的话,就可以直接是n0=?

%不过你看下面语句便知no应被(zmax-zmin)整除,才能把z最大值和最小值时的等高线也画上去

n0=(zmax-zmin)/15;

for nn0=zmin:n0:zmax

[cs,h]=contour(x,y,z,nn0);%做等高线

clabel(cs,h,'fontsize',7,'color','k');

hold on;

end

回答2:

z = peaks;
[c,h] = contour(z,[-10:2:10]); %每隔2画一条等值线
clabel(c,h) %标注

回答3:

使用contour(x,y,z,n)可以得到n条等高线