繁体   English   中英

如何以八度为单位绘制矢量?

[英]How can I draw vectors in octave?

我想制作一个程序,将两个向量相加并将它们与它们的相加绘制在一起。 但它们必须是位置向量。

我尝试创建v1=[0;2]v2=[1;3]但用plot显示它们会导致许多分散的点。

如何指定向量的起始位置,例如使v1v2从原点开始?

我通常使用quiver函数来执行您所描述的操作,其目的是绘制矢量场。 你的例子可以用

   xx=[0;2];
   yy=[0;0];
   quiver(xx,yy,[0;1],[2;3],0,"linewidth",4);axis equal;xlim([-4 4]);ylim([0 5]);grid on;

它产生以下输出:

在此处输入图片说明

向量的起点由两个变量xxyy以如下方式指定:第n-th向量的起点由[xx(n,1);yy(n,1)] (看help meshgrid获取相关信息。基本上,meshgrids 只是一种定义函数域的方法,这里恰好是一个向量场)。

以下是在 Octave 中绘制数学向量的示例:

clf
xs=[0 0 1 5 0]
ys=[0 0 7 1 0]
xe=[5 1 5 1 6]
ye=[1 7 1 7 8]
q=1;
h=quiver(xs(q),ys(q),xe(q),ye(q), 0,'b');
hold on
set (h, "maxheadsize", 0.033);
q=3;
h=quiver(xs(q),ys(q),xe(q),ye(q), 0,'--b');
set (h, "maxheadsize", 0.033);
q=2;
h=quiver(xs(q),ys(q),xe(q),ye(q), 0,'r');
set (h, "maxheadsize", 0.033);
q=4;
h=quiver(xs(q),ys(q),xe(q),ye(q), 0,'--r');
set (h, "maxheadsize", 0.033);
q=5;
h=quiver(xs(q),ys(q),xe(q),ye(q), 0,'g');
set (h, "maxheadsize", 0.033);
axis("square")
grid on
hold off

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM