Main Content

movie

記録されたムービー フレームを連続的に表示

説明

movie(M) は、配列 M 内のムービー フレームを 1 回再生します。現在の Figure または座標軸からムービー フレームを作成するには、getframe を参照してください。

movie(M,n) はムービーを n 回再生します。n を数値配列として指定できます。ここで、配列の最初の要素はムービーの再生回数を指定します。残りの要素は、ムービー内で続けて再生されるフレームの順序を示します。

movie(M,n,fps) は、ムービーを再生する際の 1 秒あたりのフレーム数 fps を指定します。

movie(h,...) は、figure または axes オブジェクト h で識別される Figure や座標軸内でムービーを再生します。Figure または Axes を指定すると、MATLAB® はムービーを利用可能な最大サイズに調節できます。

movie(h,M,n,fps,loc) は、現在の Figure の 4 要素配列 loc により指定された位置でムービーを再生します。

すべて折りたたむ

ループ内で関数 getframe を使用してサンプル関数 peaks のフレームを記録してから、ムービー フレームを 1 回再生します。

figure オブジェクト h を作成します。関数 peaks の表面プロット Z を初期化します。Figure 座標軸をカスタマイズします。

h = figure;
Z = peaks;
surf(Z)
axis tight manual
ax = gca;
ax.NextPlot = 'replaceChildren';

40 要素からなる配列 M を事前に割り当てて、ムービー フレームを保存します。

loops = 40;
M(loops) = struct('cdata',[],'colormap',[]);

j の反復ごとに、関数 X の各プロットを個別のフレームとして取得します。フレームを M に保存します。

Figure オブジェクトの 'Visible' プロパティを 'off' に設定し、X の計算時に表面プロットを非表示にします。

h.Visible = 'off';
for j = 1:loops
    X = sin(j*pi/10)*Z;
    surf(X,Z)
    drawnow
    M(j) = getframe;
end

Figure の 'Visible' プロパティを 'on' に設定し、M のムービーを 1 回再生します。

h.Visible = 'on';
movie(M);

Figure contains an axes object. The axes object contains an object of type surface.

計算時に Figure プロットを表示します。ムービー配列を 1 回再生します。

figure オブジェクト h を作成し、表面プロットを初期化します。Figure 座標軸をカスタマイズします。

h = figure;
Z = peaks;
surf(Z)
axis tight manual

Figure contains an axes object. The axes object contains an object of type surface.

ax = gca;
ax.NextPlot = 'replaceChildren';

40 要素からなる配列 M を事前に割り当てて、ムービー フレームを保存します。

loops = 40;
M(loops) = struct('cdata',[],'colormap',[]);

関数 X の各プロットを個々のフレームとして取得し、それらを M に保存します。

for j = 1:loops
    X = sin(j*pi/10)*Z;
    surf(X,Z)
    drawnow
    M(j) = getframe;
end

M のムービーを 1 回再生します。

movie(M);

Figure contains an axes object. The axes object contains an object of type surface.

ムービー配列の 4 つのフレームを 2 回再生します。

figure オブジェクト h を作成し、表面プロットを初期化します。Figure 座標軸をカスタマイズします。

h = figure;
Z = peaks;
surf(Z)
axis tight manual
ax = gca;
ax.NextPlot = 'replaceChildren';

40 要素からなる配列 M を事前に割り当てて、ムービー フレームを保存します。

loops = 40;
M(loops) = struct('cdata',[],'colormap',[]);

関数 X の各プロットを個々のフレームとして取得し、それらを M に保存します。

Figure オブジェクトの 'Visible' プロパティを 'off' に設定します。

h.Visible = 'off';
for j = 1:loops
    X = sin(j*pi/10)*Z;
    surf(X,Z)
    drawnow
    M(j) = getframe;
end

Figure の 'Visible' プロパティを 'on' に設定します。ムービー内の 1 番目、15 番目、23 番目、および 36 番目のフレームを順序どおりに 2 回再生します。1 秒あたり 12 フレーム再生するようにムービーを設定します。

h.Visible = 'on';
movie(M,[2 1 15 23 36],12);

Figure contains an axes object. The axes object contains an object of type surface.

ムービー再生時の 1 秒あたりのフレーム数を指定します。

figure オブジェクト h を作成し、表面プロットを初期化します。Figure 座標軸をカスタマイズします。

h = figure;
Z = peaks;
surf(Z)
axis tight manual
ax = gca;
ax.NextPlot = 'replaceChildren';

40 要素からなる配列 M を事前に割り当てて、ムービー フレームを保存します。

loops = 40;
M(loops) = struct('cdata',[],'colormap',[]);

関数 X の各プロットを個々のフレームとして取得し、それらを M に保存します。

Figure オブジェクトの 'Visible' プロパティを 'off' に設定します。

h.Visible = 'off';
for j = 1:loops
    X = sin(j*pi/10)*Z;
    surf(X,Z)
    drawnow
    M(j) = getframe;
end

Figure の 'Visible' プロパティを 'on' に設定します。1 秒あたり 6 フレームのレートでムービーを 1 回再生します。

h.Visible = 'on';
movie(M,1,6);

Figure contains an axes object. The axes object contains an object of type surface.

ムービー フレームを Figure の左下隅で再生します。

figure オブジェクト h を作成し、表面プロットを初期化します。Figure 座標軸をカスタマイズします。

h = figure;
Z = peaks;
surf(Z)
axis tight manual
ax = gca;
ax.NextPlot = 'replaceChildren';

40 要素からなる配列 M を事前に割り当てて、ムービー フレームを保存します。

loops = 40;
M(loops) = struct('cdata',[],'colormap',[]);

Figure オブジェクトの 'Visible' プロパティを 'off' に設定します。ハンドル h 内の各 Figure を個々のフレームとして取得し、それらを M に保存します。

h.Visible = 'off';
for j = 1:loops
    X = sin(j*pi/10)*Z;
    surf(X,Z)
    drawnow
    M(j) = getframe(h);
end

Figure の 'Visible' プロパティを 'on' に設定します。x 方向と y 方向に 30 ピクセルのオフセットで、M のムービーを 12 フレーム/秒のレートで 1 回再生します。現在の Figure でムービーを再生するようにハンドル h を指定します。

h.Visible = 'on';
movie(h,M,1,12,[30 30 0 0]);

Figure contains an axes object. The axes object contains an object of type surface.

入力引数

すべて折りたたむ

ムービー フレームの配列。構造体の配列として指定します。各構造体には、画面に表示されるときに現在の Figure または座標軸で取得されるイメージ データが含まれています。M の各行は 1 つのムービー フレームに対応します。

関数 getframe を使用して、イメージ データを取得し、cdata フィールドと colormap フィールドをもつ構造体として保存することができます。cdata イメージ プロパティおよび colormap オブジェクトの詳細については、Image のプロパティcolormapを参照してください。

Figure 内でムービーを再生する回数。数値配列として指定します。n を指定しない場合、movie はムービーを 1 回のみ再生します。n が負の場合、各サイクルはムービーを表示してから、その後で逆回転でムービーを表示します。

n をベクトルとして指定した場合、最初の要素がムービーを再生する回数を示します。残りの要素は、2 番目から最後の要素までのフレームの表示順序を示します。

たとえば、M が 4 つのムービー フレームで構成されていて、n が要素 n = [10 4 4 2 1] をもつ配列である場合、movieM のムービーを 10 回再生します。また、ムービーの構成は、4 番目のフレーム、その後に再度 4 番目のフレーム、2 番目のフレーム、最後に 1 番目のフレームが続きます。

1 秒あたりのフレーム数。数値スカラーとして指定します。fps を指定しない場合、movie は 1 秒あたり 12 フレーム再生します。マシンが fps として指定した速度を実現できない場合、できる限り高速にムービーを再生します。

グラフィックス オブジェクト ハンドル。座標軸ハンドルまたは Figure ハンドルとして指定します。h の既定のハンドルは gca であり、現在の Figure の現在の座標軸またはチャートを返します。関数 gca の詳細については、gca を参照してください。

ムービーを座標軸ではなく Figure で再生するには、movie(figure_handle,...) のように、最初の引数として Figure ハンドル (または gcf) を指定します。

位置ベクトル。4 要素の数値配列 [x y 0 0] として指定します。ここで、ムービー フレームの左下隅は、配列内の最初の 2 つの要素で指定された座標に固定されます。loc で指定された座標は、ハンドル h で指定された Figure または座標軸の左下隅に関連付けられ、ピクセル単位で示されます。関数 movieloc の最後の 2 つの要素を無視します。

ヒント

  • 関数 movie は、ムービーを再生する際に作成する Figure のサイズを既定で 560 x 420 とします。これより大きいまたは小さいフレームにムービーを再生しても、Figure のサイズを変更しません。その他のフレーム サイズに合わせるには、ムービーに合わせて Figure のサイズを変更します。

  • ムービーをバッファリングすると、フレームはすべてメモリに保存されます。その結果、Microsoft® Windows® およびおそらくはその他のプラットフォーム上でも、ムービーが長いとシステム リソースによってはメモリを消費し尽してしまうことがあります。このような場合、次のようなエラー メッセージが表示されます。

    ??? Error using ==> movie 
    Could not create movie frame

    Ctrl + C キーを押して、ムービーを中断することができます。

バージョン履歴

R2006a より前に導入