查看单个帖子
旧 2009-02-15, 02:20   #1
sirius_wang
初级会员
 
注册日期: 2009-02-15
年龄: 39
帖子: 1
声望力: 0
sirius_wang 正向着好的方向发展
默认 [求助]matlab画图时如何显示动态轨迹

部分代码如下:
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循环的时候每画一根就显示一根,然后下一根的时候自动擦掉上一根线,然后这样逐渐逼近到最后的图而不是等全部计算完一下子显示出结果。

新手上路,望指点:)谢谢!
sirius_wang 当前离线   回复时引用此帖