如何在 Matlab 中绘制 3D 分隔线

How to plot 3D separated lines in Matlab

我有大小为 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]

和大小为 5x3 的矩阵 B,其中包括另一个点的 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]

和大小为 5x1 的向量 D,其中包括矩阵 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 和它们的距离误差显示为蓝色等。

它应该是这样的:

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

 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;

结果图: