2011-05-26 7 views
2

Dans Matlab j'ai deux matrices Nx3 P et Q et chaque ligne représente un point. Je veux tracer des lignes entre les points qui sont dans la même rangée des matrices.Tracer plusieurs lignes dans Matlab sans boucle

code suivant qu'il fait:

for i=1:N 
    plot3([P(i,1) Q(i,1)], ... 
     [P(i,2) Q(i,2)], ... 
     [P(i,3) Q(i,3)]) 
end 

Est-il possible de le faire sans pour la boucle? Si je donne plot3 les points comme des vecteurs, Matlab dessine des lignes entre Q(i,:) et P(i+1,:) en plus des lignes que je veux.

Répondre

4

Essayez

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

Si vous nourrissez une matrice aux fonctions complotant Matlab, chaque colonne correspond à une ligne tracée.

0

Probablement vous voulez ceci:

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

set(h,'ShowArrowHead','off'); 
Questions connexes