【问题标题】:How to plot 3D separated lines in Matlab如何在 Matlab 中绘制 3D 分隔线
【发布时间】:2015-07-20 07:08:58
【问题描述】:

我有大小为 5x3 的矩阵 A,其中包括一些点的 3D (X,Y,Z) 坐标,如下所示:

A = [5.2985 0.3737  6.7050;
     0.5921 2.0948  6.9703;
    -4.2524 3.8338  6.9863;
    -3.9856 3.708   2.7925;
    -3.6727 3.58830 1.2437]

和矩阵B,大小为 5x3,其中包括其他点的 3D 坐标,如下所示:

B = [10.715877  -19.59950    3.575112000;
     14.3055    -17.9177     6.46700;
     17.67064   -16.201099   9.86076800;
     14.8090    -16.30260   12.64600;
     13.412823  -16.49700   13.4652810]

和向量D,大小为5x1,其中包括矩阵A和矩阵B的每个点之间的距离误差,如下所示:

D = [0.001;
     0.03;
     0.07;
     0.06;
     0.6]

例如D(1,1)A(1)B(1)之间的距离误差,D(2,1)A(2)B(2)之间的距离误差等等。现在,我的问题是如何将这两个 3D 点数据集及其距离误差线绘制在同一个图中?以及如何以相同的颜色显示每条距离线及其对应点?例如,来自矩阵Apoint1 和来自矩阵Bpoint1 并且它们的距离误差显示为红色,然后来自矩阵Apoint2 和来自矩阵Bpoint2 和它们的距离错误显示为蓝色等。

它应该是这样的:

【问题讨论】:

  • 在您编辑了问题后,我不明白您想要绘制的确切内容。你需要可视化这些点吗?应该连接点吗?应该如何准确地可视化“距离误差”?也许你可以想出一个你想要的输出看起来像的 2D 示例版本。
  • @m.s.首先,谢谢回答。其次,一般来说,我想将这两点之间的距离误差可视化为一条线。因此,由于距离误差太小于这些点之间的距离,因此这些点不会连接,可以可视化的是每个相关的两个点具有相同的颜色和距离误差(这条距离误差线从第一个点开始它的方向是朝向第二点。我在Link附上了一张照片。这表明我需要可视化我希望你能帮助我
  • 我更新了我的答案,希望它符合您的期望。

标签: matlab matrix plot scatter


【解决方案1】:

我更新了我的答案以反映您的 cmets:

 hold on;

 BA = B-A;
 cc=hsv(size(A,1));

 for k = 1:size(A,1)
     scatter3([A(k,1),B(k,1)],[A(k,2),B(k,2)],[A(k,3),B(k,3)],'MarkerFaceColor',cc(k,:), 'MarkerEdgeColor', 'none');
     plot3([A(k,1),A(k,1)+BA(k,1)*D(k)],[A(k,2),A(k,2)+BA(k,2)*D(k)],[A(k,3),A(k,3)+BA(k,3)*D(k)],'-', 'Color', cc(k,:));
 end
 hold off;

结果图:

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多