0

我有点云数据的文本文件,例如

[17.42851 7.370431 -0.8465996                                            
17.3368 7.309645 -0.6999135
17.17311 7.201123 -0.4422026 
17.26928 7.269999 -0.5591076 
17.09828 7.153707 -0.3068624 
17.59379 7.476501 -0.8979237]

在上面的 .txt 文件中,第一行的第一个值表示 x 坐标,第二个表示 y,第三个表示 z 坐标。通过uiimport在 matlab 中使用命令,我导入了它,但问题是,我想逐层绘制这些点,那么我应该如何逐层分离呢?请告诉我matlab的命令。

4

2 回答 2

2

你的矩阵:

A = [17.42851 7.370431 -0.8465996;                                            
17.3368 7.309645 -0.6999135;
17.17311 7.201123 -0.4422026; 
17.26928 7.269999 -0.5591076; 
17.09828 7.153707 -0.3068624; 
17.59379 7.476501 -0.8979237];

有长度:

L = size(A,1);

首先你需要复制它:

B = repmat(A,L,1);

然后对最后一行(z)进行排序:

B(:,3) = sort(B(:,3))

这导致:

   17.4285    7.3704   -0.8979
   17.3368    7.3096   -0.8979
   17.1731    7.2011   -0.8979
   17.2693    7.2700   -0.8979
   17.0983    7.1537   -0.8979
   17.5938    7.4765   -0.8979
   ...
   17.4285    7.3704   -0.3069
   17.3368    7.3096   -0.3069
   17.1731    7.2011   -0.3069
   17.2693    7.2700   -0.3069
   17.0983    7.1537   -0.3069
   17.5938    7.4765   -0.3069

然后你可以用它来绘制

scatter3(B(:,1),B(:,2),B(:,3));

导致: 散点图

于 2013-09-12T11:44:30.830 回答
0

如果我理解正确,您想绘制每架飞机。

scatter(x,y,2,z) 

将绘制 x 和 y 坐标的 2D 图,点的大小为 2。图的颜色将是 z 坐标的线性映射。

您可以以相同的方式处理其他飞机...

scatter(x,z,2,y)

将绘制 xz 平面

或者,您可以使用绘制 3D 点云

scatter3(x,y,z)

然后点击MATLAB图中的旋转按钮并右键点击图改变视图(到xy,xz,yz平面)

于 2013-09-12T11:05:18.253 回答