Graphics | ![]() ![]() |
例題 - FFTをムービーとして可視化
この例題は、ムービーを使って、fft(eye(n))
を可視化するものです。fft(eye(n))
の結果は、複素数のn行n列の行列で、その要素は、exp(i*2*pi/n)
のn
番目の根のパワーを表します。
ムービーの作成
グラフを取り込むために、getframe
をコールしているfor
ループを使って、ムービーを作成します。plot
コマンドは、axesプロパティをリセットするので、getframe
の前に、ループの中で、axis
equal
をコールしてください。
for k = 1:16
plot(fft(eye(k+16)))
axis equal
M(k) = getframe;
end
ムービーを実行
ムービーを作成した後、任意の回数それを再生することができます。たとえば、30回繰り返し再生するには、つぎのようにします。
movie(M,30)
多くのコンピュータでは、数ダースのフレームを作成でき、それをスムーズに再生することができます。長いムービーは、大きな基本メモリ、または、非常に効率的な仮想メモリシステムのどちらかを必要とします。
すべてのフィギュアを含むムービー
すべてのフィギュアウインドウの内容を取り込みたい(たとえば、GUIをムービーに取り込む)場合、フィギュアのハンドルをgetframe
コマンドへの引数として設定します。たとえば、前の例題の中で、k
の値を示すために、スライダを加えることを考えてみましょう。
h = uicontrol('style','slider','position',... [10 50 20 300],'Min',1,'Max',16,'Value',1) for k = 1:16 plot(fft(eye(k+16))) axis equal set(h,'Value',k) M(k) = getframe(gcf); end
この例題の中で、ムービーフレームは、すべてのフィギュアを含んでいます。オジリナルのフィギュアに見えるように再生するために、再生axesをフィギュアウインドウ一杯に設定します。
clf axes('Position',[0 0 1 1]) movie(M,30)
![]() | ムービー | 消去モード | ![]() |