我有点云数据的文本文件,例如
[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坐标。
通过在matlab中使用uiimport
命令,我导入了它,但问题是,我想逐层绘制这些点,那么我应该如何逐层分离呢?请告诉我来自matlab的命令。
答案 0 :(得分: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));
导致:
答案 1 :(得分:0)
如果我理解正确,你想绘制每个平面。
scatter(x,y,2,z)
将绘制x和y坐标的二维绘图,其中大小为2的点。绘图的颜色将是z坐标的线性映射。
你可以以同样的方式继续其他飞机......
scatter(x,z,2,y)
将绘制xz平面
或者您可以使用
绘制3D点云scatter3(x,y,z)
然后单击MATLAB图中的旋转按钮并右键单击图形以更改视图(到xy,xz,yz平面)