matlab如何画指定等值线

2025-01-01 22:29:56
推荐回答(5个)
回答1:

matlab如何画指定等值线用contour函数的'LevelList'属性来控制。

绘制幅度为5的等值线,如下例子。

x=[129 140 103.5 88 185.5 195 105.5 157.5 107.5 77 81 162 162 117.5];
y=[7.5 141.5 23 147 22.5 137.5 85.5 -6.5 -81 3 56.5 -66.5 84 -33.5];
z=[4 8 6 8 6 8 8 9 9 8 8 9 4 9];
[X,Y]=meshgrid(75:200,-50:150);
Z = griddata(x,y,z,X,Y);
[c,h]=contour(X,Y,Z,'LevelList',[5.0]);
clabel(c,h);
grid,xlabel('x-axis'),ylabel('y-axis')

结果如下:

回答2:

  clabel可以指定标注等值线的数值。clabel(C,'manual'),是要标注的内容,'manual'就是人工标注。一般结合contour使用,contour(X,Y,Z,Vector),XYZ为对应的横纵坐标,Z为高度,Vector如果输入向量[1 3 7],则显示Z 等于1 3 7的三圈等值线,如果是一个数6,会将最大值和最小值之间均匀的划分六分,画6条等值线。具体代码如下:
  官方解释:clabel(C,'manual') placescontour labels at locations you select with a mouse. Click the mouseor press the space bar to label the contour closest to the centerof the crosshair. Press the Return key while thecursor is within the figure window to terminate labeling.
  举例说明:
x=0:0.07:1;y=0:0.07:1;[X1,Y1]=meshgrid(x,y);Z1=0.001./((X1-0.5).^2+(Y1-0.5).^2);
[C,h]=contour(X1,Y1,Z1,[1 3 7]);axis([0.4 0.6 0.4 0.6]);clabel(C,'manual');
结果运行上面代码可以看到手工标注(最近百度知道出问题了,不能上传图片)

回答3:

x = linspace(-2*pi,2*pi);
y = linspace(0,4*pi);
[X,Y] = meshgrid(x,y);
Z = sin(X)+cos(Y);

figure
contour(X,Y,Z)

其他用法,请在matlab中输入

help  contour

回答4:

举个例子
[x,y]=meshgrid(linspace(-2,2));
z=sin(x)+exp(y);
contour(x,y,z,[3 3],'ShowText','on');

回答5:

contour(A,[3.0])