MATLABで作成したアニメーションをPowerPointのプレゼンで使う。

MATLABで作ったアニメーションを保存して、パワーポイントの発表で使う方法を紹介します。
細かい説明とかは、MATLABの テクニカルヘルプページ を参照してください。

MATLABで作ったアニメーションをムービーデータとして保存、
それをAVIファイルに変換して、パワポで使えるようにします。

例として、ロジスティックマップのアニメーションを使って説明します。
が、アニメーションの開始部分以外はlogmov.mと何も変わらないので、略します。
% ======= アニメーションの開始 =======
for t = 1:100
    if t == 1;plot(xp(t:t+1,1),xp(t:t+1,2),'k-');       % 黒い線をアニメーションで描く
    else;plot(xp(t-1:t+1,1),xp(t-1:t+1,2),'k-');end
    title(sprintf('%d/%d training steps',t,100))        % タイトルに学習回数を表示
    xlabel('x(t)'); ylabel('x(t+1)');
    drawnow             % drawnowを入れるとアニメーションになる
    pause(0.2)          % ゆっくりにするためにpauseで少し停止
    movmov(t) = getframe;           % アニメーションのフレームをゲットする
end

% movie.aviという、ファイルができあがる
movie2avi(movmov,'movie.avi');

っとまぁ、こんな感じです。
とにかく、保存したいfigureを表示させたあとで、getframeを入れるだけです。
M-fileダウンロード: logmov2.m(右クリック→保存)

でも、保存したアニメーションが早すぎるよぉ!!
ってときは、アニメーションの開始の部分を、下のように変えてみてください。
% ======= アニメーションの開始 =======
maxtt = 4;
for t = 1:100
    if t == 1;plot(xp(t:t+1,1),xp(t:t+1,2),'k-');       % 黒い線をアニメーションで描く
    else;plot(xp(t-1:t+1,1),xp(t-1:t+1,2),'k-');end
    title(sprintf('%d/%d training steps',t,100))        % タイトルに学習回数を表示
    xlabel('x(t)'); ylabel('x(t+1)');
    drawnow             % drawnowを入れるとアニメーションになる
    pause(0.2)          % ゆっくりにするためにpauseで少し停止
    for tt = 1:maxtt
        movmov((t-1)*maxtt+tt) = getframe;           % アニメーションのフレームをゲットする
    end
end

% movie.aviというファイルが、同じフォルダにできる。
movie2avi(movmov,'movie.avi');

これで、同じfigureをmaxttの分だけ保存できます。
Maxttを大きな値にするほど、遅くなったアニメーションをゲットできます。
でも、その分ファイルサイズも大きくなるよ。
M-fileダウンロード: logmov2_2.m(右クリック→保存)

あとは、できあがったmovie.aviファイルを、パワポに貼り付けるだけ!

Back