MATLAB Answers

0

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

Takaki Fujii さんによって質問されました 2018 年 9 月 23 日
最新アクティビティ Hirokazu Tanaka さんによって コメントされました 2018 年 10 月 5 日
以下のコードで極座標にコンターをプロットしました。この動径部分を対数分布にしたいのですが、やり方が分かりません。 アドバイス頂けたら幸いです。よろしくお願いします。必ずしも以下の様なやり方でなくとも構いません。 図としでは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 件のコメント

サインイン to comment.

1 件の回答

回答者: Hirokazu Tanaka 2018 年 10 月 2 日
 採用された回答

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

  2 件のコメント

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

サインイン to comment.