Построить несколько строк в Matlab без цикла for - PullRequest
2 голосов
/ 26 мая 2011

В 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?

Если я даю plot3 баллы как векторыMatlab рисует линии между Q(i,:) и P(i+1,:) в дополнение к нужным линиям.

Ответы [ 2 ]

4 голосов
/ 26 мая 2011

Попробуйте

plot3([P(:, 1) Q(:, 1)]', ...
      [P(:, 2) Q(:, 2)]', ...
      [P(:, 3) Q(:, 3)]')

Если вы подаете матрицу на функции построения графиков Matlab, каждый столбец соответствует одной нарисованной линии.

0 голосов
/ 26 мая 2011

Вероятно, вы хотите это:

h = quiver3(P(:,1), P(:,2), P(:,3), Q(:,1), Q(:,2) , Q(:,3),0);

set(h,'ShowArrowHead','off');
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...