在Matlab中,我有两个Nx3矩阵P
和Q
,每行代表一个点。
我想绘制矩阵的同一行中的点之间的线。
以下代码执行:
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,:)
之间绘制线条。
答案 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');