PDA

查看完整版本 : [求助]matlab画图时如何显示动态轨迹


sirius_wang
2009-02-15, 02:20
部分代码如下:
for n=1:nt

up = shift('+1',u) ;
um = shift('-1',u) ;

u=u + dt/(dx*dx)*(up+um-2*u) ;

if mod(n,5) == 0



plot(x,[u' u0']);axis(rect);
legend('schema explicite','donnee initiale');
end

end

uexacte=zeros(1,nx);
for i=1:nx
for j=1:nx
uexacte(i)=uexacte(i)+u0(j)*noyau((i-j)*dx,Tfinal)*dx;
end
end

plot(x,[u' u0' uexacte']);axis(rect);
legend('schema explicite','donnee initiale','solution exacte');
title(['schema explicite ','cfl=',num2str(cfl)]);

现在运行结果最后总是只有一个最后三根线的图,for循环里的画图语句等于没用。如果我添加hold('all')可以看见所有的线但是是最后一下显示出来的,但我想能不能在for循环的时候每画一根就显示一根,然后下一根的时候自动擦掉上一根线,然后这样逐渐逼近到最后的图而不是等全部计算完一下子显示出结果。

新手上路,望指点:)谢谢!

happyzy
2009-03-13, 23:40
在绘图完毕后,加入一段延时
如:

pause(0.1);