2011-05-26 85 views
2

在Matlab中,我有兩個Nx3矩陣PQ,每行代表一個點。 我想繪製在矩陣的同一行中的點之間的線。在Matlab中繪製幾行,無for-loop

下面的代碼做的:

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,:)之間的連線。

回答

4

嘗試

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

如果喂矩陣Matlab的繪圖函數,每列對應於繪製一條線。

0

也許你想這樣的:

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

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