matlab里如何画等高线图形

现在想编个程序,给定了x值、y值以及z值,现在现在想以x,y为坐标,得到一个关于z值的等高曲线图,二维、三维都可以。x、y和z值之间没有函数关系。如下列数据:x y z-71 56 0-70 5 174 5 175 57 90.5 18 150.5 53 9-40 11 -16-40 45 -9-70 32 -435 11 1039 45 5-29 18 -5-52 37 -352 25 6-18 53 -515 15 10-57 9 365 41 2-56 52 315 5 919 33 10-19 6 -6-45 23 -12-63 17 -257 17 12
2026年09月23日 16:41
有2个网友回答
网友(1):

举个例子,画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])%设定等高线的值

网友(2):

d = [-71 56 0
-70 5 1
74 5 1
75 57 9
0.5 18 15
0.5 53 9
-40 11 -16
-40 45 -9
-70 32 -4
35 11 10
39 45 5
-29 18 -5
-52 37 -3
52 25 6
-18 53 -5
15 15 10
-57 9 3
65 41 2
-56 52 3
15 5 9
19 33 10
-19 6 -6
-45 23 -12
-63 17 -2
57 17 12];
[X Y] = meshgrid(-80:80, -80:80);
Z = griddata(d(:,1), d(:,2), d(:,3), X, Y);
contour(X, Y, Z)