極座標で動径を対数分布にする方法

3 views (last 30 days)
Takaki Fujii
Takaki Fujii on 23 Sep 2018
Commented: Hirokazu Tanaka on 5 Oct 2018
以下のコードで極座標にコンターをプロットしました。この動径部分を対数分布にしたいのですが、やり方が分かりません。 アドバイス頂けたら幸いです。よろしくお願いします。必ずしも以下の様なやり方でなくとも構いません。 図としではdataAが角度(0~360°)、dataBの値を動径の幅としdataCをコンターにしています。(結果として添付の図になります。図の0.1~0.5の部分を対数分布にしたいです)
h=polar([min(dataA) max(dataA)],[min(dataB) max(dataB)]);
delete(h);
hold on;
[theta, rho] = dataA((dataA*pi/180), dataB);
[X, Y] = pol2cart(theta, rho);
contour(X,Y,dataC,'Levelstep',0.1)
set(gca,'YScale','log')
hold off;

Accepted Answer

Hirokazu Tanaka
Hirokazu Tanaka on 2 Oct 2018
残念ながら関数の設定などで直接変更することはできなそうです。 dataB を事前に対数変換しておいてプロットするか・・。
下記の関数が File Exchange にありましたが、この関数では動径方向を対数でプロットできそうです。 https://jp.mathworks.com/matlabcentral/fileexchange/38855-comprehensive-polar-plots
  2 Comments
Takaki Fujii
Takaki Fujii on 5 Oct 2018
ご回答ありがとうございます。ご指摘いただいたFile ExchangeとdataBの対数変換を行いプロットしたところ、コンターをは対数分布させることが出来ました。誠にありがとうございます。 しかし、関数を見たのですがいまいち動径を対数分布にさせる方法が分かりません。もしこのFile Exchangeの関数にお詳しいようであれば教えていただけないでしょうか。 (dataBを対数分布に変換したところ添付のような画像になりました。このプロット自体は合っていると思います。)
Hirokazu Tanaka
Hirokazu Tanaka on 5 Oct 2018
すいません、"Includes log radius support." と冒頭にあったので紹介したのですが、コードを見てもそれらしい部分がみられないですね・・

Sign in to comment.

More Answers (0)

Community Treasure Hunt

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

Start Hunting!