MATLAB plot コマンドで動画を作る
MATLAB plot 関係の忘備録。必ずしも動画に関係なく記載。
- gca と gcf の違い
gca = Get Current Axes handle number (現在の座標軸(座標軸とプロット本体を合わせた部分)のハンドル番号を取得する関数)
gcf = Get Current Figure handle number (現在の図全体(座標軸の外側も含むウィンドウ内部全部)のハンドル番号を取得する関数) - Movie 出力 : 以下が典型例みたい(これなら64bit windows8.1 でもOK)
writeObj = VideoWriter('test.avi','MPEG-4') ; %'MPEG-4' は圧縮したければ
writeObj.FrameRate = 60 ;
open(writeObj) ;
% Animation Loop
i = 1;
while i<=kukan
set(h1,'XData',t_k(i),'YData',suit_el_th_k(i));
set(h2,'XData',t_k(i),'YData',el_omega_k(i));
drawnow;
i = i+1;
F = getframe(1); %1は gcf の値
writeVideo(writeObj,F);
end
close(writeObj) ; - plot の renderer
MATLABがサポートしているのは,'zbuffer', 'Painters','OpenGL' の3つ。このうち履歴も残しながら動画を吐き出せるレンダラ-は OpenGLしかない(buntaの手元では)。
ただし、OpenGLを指定すると,動画の背景が透明となって、後ろにあるものまでcaptureされちゃうので注意。Aeroのせい?それとも OpenGLがカラーマップを描画対象に埋め込まないから?