2011-05-26 87 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');