Как построить 3D разделенные линии в Matlab

У меня есть матрица A размером 5x3, которая включает в себя 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, которая также включает трехмерные координаты других точек, например:

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) и так далее. Теперь у меня вопрос: как я могу построить эти два набора данных трехмерных точек с их линиями ошибок расстояния на одном и том же графике? и как я могу показать каждую линию расстояния с соответствующими точками одним цветом? например, point1 из матрицы A и point1 из матрицы B и их ошибка расстояния отображается красным цветом, затем point2 из матрицы A и point2 из матрицы B, а их ошибка расстояния отображается синим цветом и так далее.

Вот как это должно выглядеть: желаемый результат


person Reza_M    schedule 09.05.2015    source источник
comment
Я не понимаю, что именно вы хотите построить сейчас, когда отредактировали свой вопрос. Вам нужно визуализировать точки? должны ли точки быть соединены? как точно визуализировать ошибку расстояния? Возможно, вы сможете придумать 2D-версию того, как вы хотите, чтобы результат выглядел.   -  person m.s.    schedule 10.05.2015
comment
@РС. Прежде всего, спасибо за ответ. Во-вторых, как правило, я хочу визуализировать ошибку расстояния между этими двумя точками в виде линии. поэтому точки не будут соединены, поскольку ошибка расстояния слишком меньше, чем расстояние между этими точками, то, что можно визуализировать, - это каждые две связанные точки с одинаковым цветом и ошибкой расстояния (эта линия ошибки расстояния начинается с первой точки и его направление - ко второй точке. Я прикрепил фотографию в Ссылке. которая показывает, что Мне нужно визуализировать, надеюсь, ты сможешь мне помочь   -  person Reza_M    schedule 10.05.2015
comment
Я обновил свой ответ, надеюсь, он соответствует вашим ожиданиям.   -  person m.s.    schedule 10.05.2015


Ответы (1)


Я обновил свои ответы, чтобы отразить ваши комментарии:

 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;

итоговый сюжет:

сюжет

person m.s.    schedule 09.05.2015