簡體   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