MATLAB Answers

0

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

Asked by Takaki Fujii on 23 Sep 2018
Latest activity Commented on by 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;

  0 Comments

Sign in to comment.

1 Answer

Answer by Hirokazu Tanaka on 2 Oct 2018
 Accepted Answer

残念ながら関数の設定などで直接変更することはできなそうです。 dataB を事前に対数変換しておいてプロットするか・・。
下記の関数が File Exchange にありましたが、この関数では動径方向を対数でプロットできそうです。 https://jp.mathworks.com/matlabcentral/fileexchange/38855-comprehensive-polar-plots

  2 Comments

Takaki Fujii on 5 Oct 2018
ご回答ありがとうございます。ご指摘いただいたFile ExchangeとdataBの対数変換を行いプロットしたところ、コンターをは対数分布させることが出来ました。誠にありがとうございます。 しかし、関数を見たのですがいまいち動径を対数分布にさせる方法が分かりません。もしこのFile Exchangeの関数にお詳しいようであれば教えていただけないでしょうか。 (dataBを対数分布に変換したところ添付のような画像になりました。このプロット自体は合っていると思います。)
Hirokazu Tanaka on 5 Oct 2018
すいません、"Includes log radius support." と冒頭にあったので紹介したのですが、コードを見てもそれらしい部分がみられないですね・・

Sign in to comment.