MATLAB plot コマンドで動画を作る

MATLAB plot 関係の忘備録。必ずしも動画に関係なく記載。

  1. gca と gcf の違い
    gca = Get Current Axes handle number (現在の座標軸(座標軸とプロット本体を合わせた部分)のハンドル番号を取得する関数)
    gcf = Get Current Figure handle number (現在の図全体(座標軸の外側も含むウィンドウ内部全部)のハンドル番号を取得する関数)

  2. 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) ;
  3. plot の renderer
    MATLABがサポートしているのは,'zbuffer', 'Painters','OpenGL' の3つ。このうち履歴も残しながら動画を吐き出せるレンダラ-は OpenGLしかない(buntaの手元では)。
    ただし、OpenGLを指定すると,動画の背景が透明となって、後ろにあるものまでcaptureされちゃうので注意。Aeroのせい?それとも OpenGLがカラーマップを描画対象に埋め込まないから?