粗大メモ置き場

個人用,たまーに来訪者を意識する雑記メモ

MATLABのグラフから動画を作る

聞かれたので昼休みに作ったまでです。

MATLABでたくさんFigureを出した時に比較する手段として動画にするというのはよくあると思われます。

本プログラムのステップは

  • 描画
  • getframeによる取得
  • Videowriterによる書き込み

の3ステップになっています。

コード

どうぞご自由に。コードでは2次系の粘性項を変えた場合のステップ応答を作成していますね。

%% make movie from MATLAB plot
clear all;
close all;

Frate = 5;
k = 0:0.1:3;
for i = 1:size(k,2)
    % First, make figure
    sys = tf([1],[1 k(i) 1]);
    figure(1);
    step(sys);
    xlim([0 10]); ylim([0 2]);
    grid on;
    
    % Put current figure into Frame
    Frame(i) = getframe(1);
end

% % convert the Frame to movie and show
% figure(2);
% movie(Frame,1);

% write to video
v = VideoWriter('step.avi');
v.FrameRate = Frate; % Framerate

open(v);
writeVideo(v,Frame);
close(v);