quiver関数で描​く矢印の大きさを一定​にする方法はあります​か?

9 ビュー (過去 30 日間)
chisato hara
chisato hara 2020 年 5 月 22 日
コメント済み: Kenta 2020 年 5 月 22 日
quiver関数で矢印をプロットすると各ベクトルの大きさによって矢印の大きさが変わります。プロットするベクトルの最大値と最小値に開きがある場合、最小値のベクトルは小さく表示され、どちらに矢印が向いているかわかりません。そこで、矢印の大きさをベクトルの大きさによらず固定する方法があれば教えていただけないでしょうか? もしくは、‘MaxHeadSize'で矢印の大きさの最大値は設定できますが、矢印の大きさの最小値’MinHeadSize'のようなもので設定できないかと思っております。

採用された回答

Kenta
Kenta 2020 年 5 月 22 日
こんにちは、各所でのベクトルの大きさを計算し、その長さで割り算すれば同じ長さになると思うのですがいかがでしょうか。例えば下の例だと、何もしないのが左側の絵で、右側は各ポイントで、その点の長さでスケールを変えることで同じ長さにしています。
clear;clc;close all
[X,Y] = meshgrid(-2:.2:2);
Z = X.*exp(-X.^2 - Y.^2);
[DX,DY] = gradient(Z,.2,.2);
headSize=sqrt(DX.^2+DY.^2);
figure
subplot(1,2,1)
contour(X,Y,Z)
hold on
quiver(X,Y,DX,DY)
hold off
subplot(1,2,2)
contour(X,Y,Z)
hold on
quiver(X,Y,DX./headSize,DY./headSize)
hold off
  4 件のコメント
chisato hara
chisato hara 2020 年 5 月 22 日
Kenta様
海外の方で同じ質問されている方がいました。以下のサイトに解決方法が示されていましたので試してみます。
親切に対応いただきまして、ありがとうございました。
Kenta
Kenta 2020 年 5 月 22 日
教えていただきありがとうございます。確かにいろいろとアレンジできそうですね。

サインインしてコメントする。

その他の回答 (0 件)

カテゴリ

Help Center および File Exchangeベクトル場 についてさらに検索

タグ

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!