#matlab
#matlab
Вопрос:
В Matlab у меня есть две матрицы Nx3 P
и Q
, и каждая строка представляет точку. Я хочу построить линии между точками, которые находятся в одной строке матриц.
Следующий код делает это:
for i=1:N
plot3( [P(i,1) Q(i,1)], ...
[P(i,2) Q(i,2)], ...
[P(i,3) Q(i,3)] )
end
Есть ли способ сделать это без for-loop?
Если я задаю plot3
точки просто как векторы, Matlab рисует линии между Q(i,:)
и P(i 1,:)
в дополнение к линиям, которые я хочу.
Ответ №1:
Попробуйте
plot3([P(:, 1) Q(:, 1)]', ...
[P(:, 2) Q(:, 2)]', ...
[P(:, 3) Q(:, 3)]')
Если вы передаете матрицу в функции построения графиков Matlab, каждый столбец соответствует одной нарисованной строке.
Ответ №2:
Вероятно, вы хотите этого:
h = quiver3(P(:,1), P(:,2), P(:,3), Q(:,1), Q(:,2) , Q(:,3),0);
set(h,'ShowArrowHead','off');