Matlab求助,如何从已知的plot3(x,y,z)三维坐标中,找到plot(x,y),并分别显示出来?

我已经找到了三维空间的N个点,并用plot3(x,y,z)显示了出来,其中x,y,z都是独立的坐标,没有相互的关系,x,y,z分别为X,Y,Z轴的坐标。由于z是以相同间隔离散在Z轴的值,即所有点,都在不同的z=一个定值的X-Y平面上。现在我想要用plot(x,y),把不同z值下的X-Y二维图显示出来。假设z=1:1:10,即我要得到10个plot(x,y)二维图。谢谢!

你确定你的z刚好是1-10的整数?根据你的描述,我写个例子

N = 2000;
x=rand(1,N); % 随机x
y=rand(1,N)*5; % 随机y
z=floor(rand(1,N)*10+1); % 随机z,在1-10之间
for a = 1:10
  t = z==a;
  subplot(5,2,a);
  plot(x(t),y(t),'r:');
end

追问

不太懂你程序的意思。我的z定义就是,比如z=0.10:0.01:0.20,x和y的值无规律,然后我用plot3(x,y,z)显示出来三维图。我现在只是想要每一个平行于X-Y平面的二维图。比如,我有100个点分布在三维图中,但是这100个点是分布在不同的X-Y平面内。由于z只能定义的数值,因此分别得到z=0.10,z=0.11,z=0.12.........,z=0.20时的X-Y二维图。

追答

那上面的代码就是实现你这个意思是啊
1、假设有2000个点
2、因为我没有你的数据,所以我随机给x赋值
3、同理给y赋值
4、随机给z赋值,假设在1-10
5、通过循环给1-10的z每一个作图
6、查找刚好等于1,2,3,4..时的z的下标
7、确定子图
8、将对应z值的x,y画图
9、循环结束
如果还不明白的话,你可以给出数据

追问

好吧,我再看看,谢谢!

温馨提示:答案为网友推荐,仅供参考