平常我们看到gif图很好玩,在Matlab中也可以制作像gif那样动态的图,在这里就以动态画一个正玄函数为例来说明一下。一个动态图其实存放了好多张连续的图片,你看到的动态图其实就是这些多张图串联起来然后以比你眼睛感知要快的速度移动,这样达到一种动态展现的效果,所以呀,眼睛感知的经常看到的是假象,唯有心感知的才是真实的。
要达到画图动态的效果,就是当你画第i个点时,前(i-1)个点的画图过程要首先展现出来。因此我们只要记录画每一个点图像,然后依次快速移动这些图片,我们就可以达到这种目的了。在Matlab中提供了getframe和movie 来完成这个过程。具体详尽说明和其他使用见help。下面直接上代码。
clc; close all; x1=0;s=0.2;%确定起始点和增量 nframes=50;%确定总动画帧数 for k=1:nframes x1=x1+s;%确定画图时的横坐标终止值x1 x=0:0.01:x1; y=sin(x); plot(x,y); axis([0 2*pi -1.2 1.2]);%坐标轴的范围 m(k)=getframe;%将当前图形存入矩阵m中 end movie(m,3)%重复3此播放动画至此就完成了动态画图的过程了。