在没有for循环的Matlab中绘制几行

时间:2011-05-26 11:29:35

标签: matlab

在Matlab中,我有两个Nx3矩阵PQ,每行代表一个点。 我想绘制矩阵的同一行中的点之间的线。

以下代码执行:

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 个答案:

答案 0 :(得分:4)

尝试

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

如果将矩阵输入到Matlab绘图函数中,则每列对应于绘制的一​​条线。

答案 1 :(得分:0)

可能你想要这个:

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

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