quiver で描く矢印の長さを、自動スケーリングを行わずに調節する方法はありますか?
9 views (last 30 days)
Show older comments
MathWorks Support Team
on 3 Feb 2016
Answered: MathWorks Support Team
on 3 Feb 2016
quiver 関数で矢印プロットを描く際、 scale = 0 を用いて表示されるベクトルのx成分とy成分の長さ(幅)は、x軸とy軸に使用されている目盛りの幅と同じ、すなわちベクトル強度をそのまま反映できるようです。ここで、例えば scale = 0.2 は「自動的にスケーリングされた長さの0.2倍を表示」するという意味だと理解していますが、そうではなく、「自動的なスケーリングを施さない場合で、その長さの0.2倍を表示」するためには、どのようにすればよいか教えてください。
Accepted Answer
MathWorks Support Team
on 3 Feb 2016
自動的なスケーリングを行わない設定と同時に、scale = 0.2 などとスケールの調整する機能は、MATLAB R2014 では提供されていません。
代替案として、例えば、共通の定数値で quiver 関数に与えるベクトルの大きさ自体を直接変更する方法が考えられます。
下記のスクリプトで4つのフィギュアが作成されます。
[x,y] = meshgrid(0:0.2:2,0:0.2:2);
% 描画するベクトル
u1 = cos(x).*y;
v1 = sin(x).*y;
% 2 倍の大きさのベクトル
u2 = 2*u1;
v2 = 2*v1;
% ベクトルのサイズをそのまま描画(scale = 0 と同値)
figure, quiver(x,y,u1,v1,'AutoScale','off')
figure, quiver(x,y,u2,v2,'AutoScale','off')
% 共通の値でベクトルのサイズを縮小し、その値を直接反映する矢印のサイズで描画
factor = 0.1;
figure, quiver(x,y,factor*u1,factor*v1,'AutoScale','off')
figure, quiver(x,y,factor*u2,factor*v2,'AutoScale','off')
0 Comments
More Answers (0)
See Also
Categories
Find more on ベクトル場 in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!