matlab中hold on没有作用啊

A=[19647920,3964999,327.35;19644860,3963805,46.6;19646880,3963263,259.35;19649910,3966040,206.08;
19649140,3963466,317.1;19645120,3966043,6.85;19648820,3964877,306.2;19648640,3964559,321.22;
19648910,3964621,304.19;19649030,3964376,302.18;19649190,3964725,276.18;19649360,3964188,287.15;
19649230,3963918,302.15;19649490,3963945,285.1;19649750,3964082,263.05;19649610,3963705,283.05];
x=A(:,1);y=A(:,2);z=A(:,3);
figure
[X,Y,Z]=griddata(x,y,z,linspace(min(x),max(x),200)',linspace(min(y),max(y),200),'v4');%插值
figure,surf(X,Y,Z)%三维曲面
hold on
B=[19647920,3964999,320.4;19644860,3963805,39.6;19646880,3963263,252.4;19649910,3966040,199.65;
19649140,3963466,310.6;19645120,3966043,-0.35];
x=B(:,1);y=B(:,2);z=B(:,3);
figure
[X,Y,Z]=griddata(x,y,z,linspace(min(x),max(x),200)',linspace(min(y),max(y),200),'v4');%插值
figure,surf(X,Y,Z)%三维曲面
我用了hold on但是运行程序后还是两个分开的图,求大神怎么才能把这两个图放在同一坐标系,注意,是同一坐标系哦

第1个回答  推荐于2017-09-05
因为你用了figure语句。
figure语句的作用就是新开一个画图窗口,然后在这个窗口绘图。
将figure语句删除即可。

我看了下你程序里用了4个figure。
把这四个figure删除即可得到你想要的结果。
除非你想画图在不同的窗口,否则没有必要用figure语句。直接用surf就可以画图。追问

谢谢,后来我也注意到了这个问题。再请问下在三维坐标系里面,我要画一条平行于Z轴的直线,这个怎么画啊

本回答被提问者采纳
相似回答