动图效果:

代码如下:
filename = '问题儿童.gif';
% 创建图形窗口并设置属性
hFigure=figure('menubar','none','NumberTitle','off','position',...
[100 100 350 400],'name','问题儿童');
movegui(hFigure,'center');%居中
%创建坐标轴,用于显示背景图片和文本
hAxes=axes('visible','off','units','normalized','position',[0 0 1 1]);
%% 方块
rectangle('Position',[-26,65,52,46],'Curvature',[0.2 0.2],'edgecolor','k','facecolor','y','linewidth',3);
hold on
rectangle('Position',[-23,104,3,3],'Curvature',[1 1],'edgecolor','k','facecolor','k');
rectangle('Position',[20,104,3,3],'Curvature',[1 1],'edgecolor','k','facecolor','k');
rectangle('Position',[-23,70,3,3],'Curvature',[1 1],'edgecolor','k','facecolor','k');
rectangle('Position',[20,70,3,3],'Curvature',[1 1],'edgecolor','k','facecolor','k');
%% 头
theta=0:0.01:2*pi;
x=50*cos(theta); y=48*sin(theta);
h=plot(x,y,'k','linewidth',6);
h1=fill(x,y,'w');
%% 眼睛
theta=0:0.01:pi;
xL1=-20+8*cos(theta); yL1=6+9*sin(theta);
hL1=plot(xL1,yL1,'k','linewidth',3,'EraseMode','xor');
theta=0:0.01:pi;
xR1=20+8*cos(theta); yR1=6+9*sin(theta);
hR1=plot(xR1,yR1,'k','linewidth',3,'EraseMode','xor');
%% 嘴
x2=[0 -7 7 0]; y2=[-10 1 1 -10];
h2=plot(x2,y2,'k','linewidth',3,'EraseMode','xor');
%% 身体
x3=[28 35 -35 -28]; y3=[-39 -90 -90 -39];
h3=plot(x3,y3,'k','linewidth',5,'EraseMode','xor');
h31=fill(x3,y3,'w');
x32=[28 -28]; y32=[-39 -39];
h32=plot(x32,y32,'w','linewidth',5,'EraseMode','xor');
%% 爱心
t=linspace(-3,3,50);
x4=10+8*(sin(t)).^3;
y4=165+6.5*cos(t)-2.5*cos(2*t)-1*cos(3*t)-0.5*cos(4*t);
axis equal
strCell={'?','爱','你','呦'};
for k=1:9
if k==1
set(h,'xdata',x,'ydata',y);
set(h1,'xdata',x,'ydata',y);
set(hL1,'xdata',xL1,'ydata',yL1);
set(hR1,'xdata',xR1,'ydata',yR1);
set(h2,'xdata',x2,'ydata',y2);
set(h3,'xdata',x3,'ydata',y3);
set(h31,'xdata',x3,'ydata',y3);
set(h32,'xdata',x32,'ydata',y32);
strTemp=strCell{1};%取每一条诗句
str=[strTemp;10*ones(1,length(strTemp))];%在每句后添加一个换行符
str=str(:)';%获取添加了换行符的诗句字符串
str1=str(1);%获取一句中的每个字
t=text('Horizontal','right',...
'FontName','宋体','FontSize',35,'Color','k');
set(t,'string',str1,'position',[8 90],'EraseMode','none');
end
if k==2
set(h,'xdata',x,'ydata',y+15);
set(h1,'xdata',x,'ydata',y+15);
set(hL1,'xdata',xL1,'ydata',yL1+15);
set(hR1,'xdata',xR1,'ydata',yR1+15);
set(h2,'xdata',x2,'ydata',y2+15);
set(h3,'xdata',x3,'ydata',y3+15);
set(h31,'xdata',x3,'ydata',y3+15);
set(h32,'xdata',x32,'ydata',y32+15);
strTemp=strCell{2};%取每一条诗句
str=[strTemp;10*ones(1,length(strTemp))];%在每句后添加一个换行符
str=str(:)';%获取添加了换行符的诗句字符串
str1=str(1);%获取一句中的每个字
t=text('Horizontal','right',...
'FontName','华文行楷','FontSize',30,'Color','k');
set(t,'string',str2,'position',[10 160],'EraseMode','none');
end
if k==3
set(h,'xdata',x,'ydata',y);
set(h1,'xdata',x,'ydata',y);
set(hL1,'xdata',xL1,'ydata',yL1);
set(hR1,'xdata',xR1,'ydata',yR1);
set(h2,'xdata',x2,'ydata',y2);
set(h3,'xdata',x3,'ydata',y3);
set(h31,'xdata',x3,'ydata',y3);
set(h32,'xdata',x32,'ydata',y32);
set(t,'string',str2,'position',[-15 130],'EraseMode','none');
end
if k==4
set(h,'xdata',x,'ydata',y+15);
set(h1,'xdata',x,'ydata',y+15);
set(hL1,'xdata',xL1,'ydata',yL1+15);
set(hR1,'xdata',xR1,'ydata',yR1+15);
set(h2,'xdata',x2,'ydata',y2+15);
set(h3,'xdata',x3,'ydata',y3+15);
set(h31,'xdata',x3,'ydata',y3+15);
set(h32,'xdata',x32,'ydata',y32+15);
strTemp=strCell{3};%取每一条诗句
str=[strTemp;10*ones(1,length(strTemp))];%在每句后添加一个换行符
str=str(:)';%获取添加了换行符的诗句字符串
str3=str(1);%获取一句中的每个字
t=text('Horizontal','right',...
'FontName','华文行楷','FontSize',30,'Color','k');
set(t,'string',str3,'position',[10 160]);
end
if k==5
set(h,'xdata',x,'ydata',y);
set(h1,'xdata',x,'ydata',y);
set(hL1,'xdata',xL1,'ydata',yL1);
set(hR1,'xdata',xR1,'ydata',yR1);
set(h2,'xdata',x2,'ydata',y2);
set(h3,'xdata',x3,'ydata',y3);
set(h31,'xdata',x3,'ydata',y3);
set(h32,'xdata',x32,'ydata',y32);
set(t,'string',str3,'position',[10 130]);
end
if k==6
set(h,'xdata',x,'ydata',y+15);
set(h1,'xdata',x,'ydata',y+15);
set(hL1,'xdata',xL1,'ydata',yL1+15);
set(hR1,'xdata',xR1,'ydata',yR1+15);
set(h2,'xdata',x2,'ydata',y2+15);
set(h3,'xdata',x3,'ydata',y3+15);
set(h31,'xdata',x3,'ydata',y3+15);
set(h32,'xdata',x32,'ydata',y32+15);
strTemp=strCell{4};%取每一条诗句
str=[strTemp;10*ones(1,length(strTemp))];%在每句后添加一个换行符
str=str(:)';%获取添加了换行符的诗句字符串
str4=str(1);%获取一句中的每个字
t=text('Horizontal','right',...
'FontName','华文行楷','FontSize',30,'Color','k');
set(t,'string',str4,'position',[10 160]);
end
if k==7
set(h,'xdata',x,'ydata',y);
set(h1,'xdata',x,'ydata',y);
set(hL1,'xdata',xL1,'ydata',yL1);
set(hR1,'xdata',xR1,'ydata',yR1);
set(h2,'xdata',x2,'ydata',y2);
set(h3,'xdata',x3,'ydata',y3);
set(h31,'xdata',x3,'ydata',y3);
set(h32,'xdata',x32,'ydata',y32);
set(t,'string',str4,'position',[35 130]);
end
if k==8
set(h,'xdata',x,'ydata',y+15);
set(h1,'xdata',x,'ydata',y+15);
set(hL1,'xdata',xL1,'ydata',yL1+15);
set(hR1,'xdata',xR1,'ydata',yR1+15);
set(h2,'xdata',x2,'ydata',y2+15);
set(h3,'xdata',x3,'ydata',y3+15);
set(h31,'xdata',x3,'ydata',y3+15);
set(h32,'xdata',x32,'ydata',y32+15);
h41=plot(x4,y4,'k','linewidth',4,'EraseMode','xor');
h42=fill(x4,y4,'r');
end
if k==9
set(h,'xdata',x,'ydata',y);
set(h1,'xdata',x,'ydata',y);
set(hL1,'xdata',xL1,'ydata',yL1);
set(hR1,'xdata',xR1,'ydata',yR1);
set(h2,'xdata',x2,'ydata',y2);
set(h3,'xdata',x3,'ydata',y3);
set(h31,'xdata',x3,'ydata',y3);
set(h32,'xdata',x32,'ydata',y32);
set(h41,'xdata',x4+40,'ydata',y4-35);
set(h42,'xdata',x4+40,'ydata',y4-35);
end
axis equal
axis off;%关闭坐标轴显示
axis([-90 90 -74 180]);
drawnow; % 刷新屏幕
pause(0.2)
%下面语句是将静态图像的每一帧进行叠加存储,并写入到filename文件夹中
f=getframe(gcf);
imind=frame2im(f);
[imind,cm] = rgb2ind(imind,256);
if k==1
imwrite(imind,cm,filename,'gif', 'Loopcount',inf,'DelayTime',0.2);
else
imwrite(imind,cm,filename,'gif','WriteMode','append','DelayTime',0.2);
end
end