- ベストアンサー
MATLABの極座標を用いたアニメーション
MATLABを用いて極座標表示するpolarとpauseを用いて簡易的なアニメーションを作っています。その際、半径RHOの大きさによって、軸のスケールが変わってしまい、どうしても見づらくなってしまいます。 plotをaxisでスケールを固定するような操作を、polarの場合はどのようにして行うことが出来るか、ご存知の方は教えてください。 以下に例を示しておきます。 t = 0:.01:2*pi; for n=1:50 A=polar(t,n*sin(2*t).*cos(2*t)); caxis([0 50]) pause(0.01) end
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
No1の方が無理ではないかとご指摘ですので、私からもひとつ助言させて頂ければと 存じます。 なお、私は現在Matlabの実行環境を持っておりませんので、参考意見の参考(?)程度と して頂ければ幸いです。 私として、スケールを固定することは極形式でも可能ではないかと思っております。 get/set関数の使用方法をご存知でしょうか? axisオブジェクトのオブジェクトハンドルで、軸の(最大値・最小値)プロパティを セットするといった方法です。 先にも言いましたが、Matlab環境が無いので具体的な方法をご提示できなくて、 申し訳ありませんが、例えば set(gca, 等のキーワードでWEB検索していただければ、情報が見つかるのではないかと思います。 get/set関数に関して、ご存知の場合は無かったことにしてください。 下記URLもご参照ください。 http://dl.cybernet.co.jp/matlab/support/manual/r14/toolbox/signal/?/matlab/support/manual/r14/toolbox/signal/zplane.shtml
その他の回答 (2)
- HarukaV49
- ベストアンサー率53% (48/89)
get/set関数をご利用になっておられなかったということでしたので、 追記させていただきました。 例えば、 set(gca,'YLimMode','Manual'); と設定すると、アクティブグラフのY軸の伸縮が固定されると思います。 ここで、'YLimMode'や'Manual'のプロパティ名をどうやって調べるのか、 というひとつの方法です。 コマンドウィンドウで guide と入力してください。 すると、GUIのデザインウィンドウとともに、プロパティウィンドウも同時に 起動すると思います。(とりあえずデザインウィンドウは無視します) そして、操作したいグラフの所望の軸を選択すると、プロパティウィンドウの内容が 選択した軸のプロパティと現在の設定値に更新されると思います。 その項目の'YLimMode'プロパティを'Manual'に手作業で変更する操作が、 当初示したset関数によるコードになるということです。 MatlabでGUI+get/setを駆使すれば、オリジナルのfigureを実装することも 可能になります。 私は、Matlab使用開始当初、Matlabで画像処理アプリケーションを 作成しようと思っていたのですが、GUIの見た目はC++,Java相当のものが作成 可能でしたが、イベント処理等が思い通りに行かなかったので Matlabそのものから離れていってしまいました。 要するに、一般的なプログラミング言語で実装できるような操作は、 ほぼMatlabでもできて、”Matlabでは出来ないのかな?”と諦めてしまう 機能の殆どは探究心が足りないからだと思われます。 Matlabを諦めた私がこんなことを言っても説得力が...(^^;
お礼
ご返答ありがとうございます。 HarukaV49さんの意見を参考にしてオリジナルのfigureを作ってみたいと思います。 貴重な意見ありがとうございました。
- m0r1_2006
- ベストアンサー率36% (169/464)
無理だと思います. たとえば,(0,30) に無理矢理点を打つとかすれば, 範囲は固定できますが t = 0:.01:2*pi; for n=1:50 polar(0,30,'.'); hold on; A=polar(t,n*sin(2*t).*cos(2*t)); hold off; pause(0.01) end
お礼
ご回答有難うございます、早速参考にさせていただき、多少無理やり感はありますが、何とか軸を固定することができとても助かりました。
お礼
大変丁寧なご回答有難うございました、勉強して、get/set関数なんとかをつかいこなせるよう頑張ってみます。