2

ループ中に発生する数値を保存できるかどうかに興味があります。
たとえば、ランダムな行列を作成しました。

 r=rand(8,5)


r =

0.8147    0.9575    0.4218    0.6787    0.2769
0.9058    0.9649    0.9157    0.7577    0.0462
0.1270    0.1576    0.7922    0.7431    0.0971
0.9134    0.9706    0.9595    0.3922    0.8235
0.6324    0.9572    0.6557    0.6555    0.6948
0.0975    0.4854    0.0357    0.1712    0.3171
0.2785    0.8003    0.8491    0.7060    0.9502
0.5469    0.1419    0.9340    0.0318    0.0344

今、この行を使用すると

plot(r(1,:))

次の図が得られます

ここに画像の説明を入力

私の質問は、ループを使用する場合です

for i=1:8
   plot(r(i,:))
end

それは私に行の1つのグラフを示していますが、それは循環していないので、8つの図すべてをmatlabで段階的に表示できますか. たとえば、間隔が 10 秒の場合があります。関数movieが使用されていることがわかっているため、またgetframe、数値をループに保存できますか?
また、私はimsaveまたはこのようなものを知っています。どこかに保存したほうがいいと思うので、こんな風に使えたら

imsave(plot(r(i,:))
4

3 に答える 3

5

getframe現在の Figure ハンドルの内容をキャプチャするために使用します

fh = figure
% ...
for ii = 1:8
    figure( fh ); % focus on figure
    plot( r(ii,:) );
    frm = getframe( fh );
    % save as png image
    imwrite( frm.cdata, sprintf( 'current_frame_%02d.png', ii ) );
end

PS Matlab で変数として使用しないこと
をお勧めしますi

于 2013-04-22T08:13:57.263 に答える
1

ループを使用してすべてのプロットを表示する場合は、次のようにします。

for ii=1:8
    figure();
    plot(r(ii,:));
end
于 2013-04-22T08:16:30.150 に答える