如果可以保存循环期间出现的数字,我感兴趣 例如,我创建了一些随机矩阵
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
它显示了一个行图,但它没有循环,所以我可以在matlab中逐步显示所有8个数字。例如,间隔可能是10秒,因为我知道使用了函数movie
,也使用getframe
,或者我可以将数字保存在循环中吗?
此外,我知道imsave或类似的东西。我认为更好的是保存在某处,所以如果我能像这样使用
imsave(plot(r(i,:))
答案 0 :(得分:5)
使用getframe
捕获当前数字句柄的内容
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
答案 1 :(得分:1)
我认为您的问题有多种解决方案:
pause
功能,可暂停一下,以便您查看自己的身材。figure(i)
放入for
循环。print
功能保存图像。希望它有所帮助!
答案 2 :(得分:1)
如果您想通过循环显示所有绘图,则可以执行以下操作:
for ii=1:8
figure();
plot(r(ii,:));
end