for循环+drawnow
x=linspace(0.1,0.9,100)
for it=1:100
plot(x(it),0.3,'ro')
axis([0,1,0,1])
drawnow
end
保存动态图子程序
LoopCount选项:
0:动画播放一次
1:动画播放两次
inf:连续播放
makegif.m
function makegif(filename,index) f=getframe(gcf) im=frame2im(f) [im,cm]=rgb2ind(im,256) if index==1 imwrite(im,cm,filename,'gif','Loopcount',Inf,'DelayTime',0.1) else imwrite(im,cm,filename,'gif','WriteMode','append','DelayTime',0.1) end end
为了限制更新,以至于看不到效果,使用pause(0.1)暂停0.1s
my.gif:my是文件名,.gif:是文件格式
x=linspace(0.1,0.9,100)
for it=1:100
plot(x(it),0.3,'ro')
axis([0,1,0,1])
makegif('my.gif',it)
pause(0.1)
drawnow
end
x=linspace(0.1,0.9,100)
for it=1:100
plot([x(1),x(it)],[0.3,0.3],'r',...
x(it),0.3,'ro')
axis([0,1,0,1])
makegif('my2.gif',it)
pause(0.1)
drawnow
end
t=linspace(0,1,100)
x=zeros(1,100)
y=zeros(1,100)for it=1:100
x(it)=cos(2*pi*t(it))
y(it)=sin(2*pi*t(it))
endfor it=1:100
plot(x(1:it),y(1:it),'r',...
x(it),y(it),'o')
axis(1.2*[-1,1,-1,1])
axis square
makegif('my3.gif',it)
pause(0.1)
drawnow
end
t=linspace(0,1,100)
x=zeros(1,100)
y=zeros(1,100)for it=1:100
x(it)=cos(2*pi*t(it))
y(it)=sin(2*pi*t(it))
endfor it=1:100
line([-1,1],[0,0])
plot(x(1:it),y(1:it),'r',... 绘制曲线
x(it),y(it),'o',... 绘制点
1.2*[-1,1],[0,0],'k',... x轴
[0,0],1.2*[-1,1],'k',... y轴
[0,x(it)],[0,y(it)],'k',... 半径
[0,x(it)],[0,0],'b',...
[0,0],[y(it),0],'b',...
[x(it) x(it)],[0,y(it)],':b',...
[0,x(it)],[y(it),y(it)],':b')
axis(1.2*[-1,1,-1,1])
axis square
makegif('my4.gif',it)
pause(0.1)
drawnow
end
x=linspace(0,3,200)
t=linspace(0,4,200)for it=1:200
y=sin(2*pi*x-2*pi*t(it))
plot(x,y)
xlabel('x')
ylabel('y')
title('traveling wave')
makegif('my5.gif',it)
pause(0.1)
drawnow
end