【问题标题】:Plot several lines in Matlab without for-loop在没有for循环的Matlab中绘制几行
【发布时间】:2011-05-26 11:29:34
【问题描述】:

在 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,:) 之间画线。

【问题讨论】:

    标签: matlab


    【解决方案1】:

    试试

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

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

    【讨论】:

      【解决方案2】:

      可能你想要这个:

      h = quiver3(P(:,1), P(:,2), P(:,3), Q(:,1), Q(:,2) , Q(:,3),0);
      
      set(h,'ShowArrowHead','off');
      

      【讨论】:

        猜你喜欢
        • 2015-07-24
        • 2013-11-08
        • 2016-02-09
        • 1970-01-01
        • 2016-09-29
        • 2016-10-22
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多