有很多时候我们需要在PPT中展示一个动态变化的图像,这就需要不断刷新绘图以及保存独立的动画或者视频,matlab对于这一功能有非常完善的支持。
查文档就有还非要写报告,我摸鱼的时间也很宝贵的好么,MDZZ。
figure(5)
filename = 'PEZ.gif';
set (gcf,'Position',[400,100,650,600], 'color','w')
ox=0;oy=-5;angle=0:pi/50:2*pi;
hPU=plot(ox,oy,'o','MarkerFaceColor','r','MarkerSize',7);hold
on;
hSU=plot(locSU(:,1),locSU(:,2),'o','MarkerFaceColor','y','MarkerSize',5);hold
on;
hAP=plot(locAP(:,1),locAP(:,2),'^','MarkerFaceColor','b','MarkerSize',6);hold
on;
r = rPEZ(1); grid on;
x1 = ox r*cos(angle); y1 = oy r*sin(angle);
hPEZ=plot(x1,y1,'XDataSource','x1','YDataSource','y1');
legend([hPU hSU hAP hPEZ],'PU','SU','AP','PEZ')
xlabel('x-axis (m)')
ylabel('y-axis (m)')
for i=2:2:1440
r = rPEZ(i);
x1 = ox r*cos(angle);y1 = oy
r*sin(angle);
title(['Radius of PEZ when Reqired Resource is '
num2str(reqRB(i)) ' MiB'])
refreshdata(hPEZ)
drawnow
f = getframe(gcf);
imind = frame2im(f); [imind,cm] = rgb2ind(imind,256);
if i ==
2
imwrite(imind,cm,filename,'gif',
'Loopcount',inf,'DelayTime',0.05);
else
imwrite(imind,cm,filename,'gif','WriteMode','append','DelayTime',0.05);
end
end
这是一个简单的保存动图的代码。蓝色的是刷新绘图的命令,红色的是保存图片的命令(保存后的文件在你选择的matlab路径中)。
刷新绘图一般用drawnow和refreshdata两个命令。
drawnow用来刷新绘图,绘图中的参数和数据一般通过图线属性来控制(我不知道怎么翻译)。
hPEZ=plot(x1,y1,'XDataSource','x1','YDataSource','y1');
这里就需要说明绘图中X轴和Y轴的数据,注意需要写个轮子刷新,参见,
/help/matlab/ref/refreshdata.html
设置好了以后直接drawnow,就可以绘图,参见,
/help/matlab/ref/drawnow.html
这样就可以刷新绘图了。
保存gif的话看红色命令就可以,保存到.avi的话用moive2avi。
几个主要命令:
frame2im --
/help/matlab/ref/frame2im.html
imwrite --
/help/matlab/ref/imwrite.html
getframe --
/help/matlab/ref/getframe.html
#EOF
如果觉得《matlab 动态存储图片 Matlab刷新图像及保存.gif动图的简单方法》对你有帮助,请点赞、收藏,并留下你的观点哦!