2014-05-12 46 views
1

我想在for循环内绘制3种不同颜色的线。但只有我的循环中的最后一个颜色显示为所有行。For循环用不同的颜色

hold on 

for N = [20, 200, 2000] 
    [email protected](t,u)cos(3*t)-sin(5*t)*u; 
    a=0; b=4; ua=2; 
    h=(b-a)/N; 
    t=a+(0:N)*h; U=zeros(size(t)); 
    U(1)=ua; 
    for n=1:N 
     U(n+1)=U(n)+h*f(t(n),U(n)); 
    end 
     for color=['r' 'g' 'b'] 
     plot(t,U,'color',color) 
     end 
end 
+0

下降了'颜色...'循环和改变'on'坚持'持有all' – Dan

回答

1

问题在于,您将每条曲线绘制在自身上方三次,以便仅显示最后一种颜色。解决这个问题的一个简单方法是使用一个单独的循环变量和两个新的向量来代替您尝试的方法。我也动了一些常见的定义,你for循环之外:

hold on 
NN = [20 200 2000]; 
colors=['rgb']; 
[email protected](t,u)cos(3*t)-sin(5*t)*u; 
a=0; b=4; ua=2; 
for jj = 1:3 
    N = NN(jj); 
    h=(b-a)/N; 
    t=a+(0:N)*h; 
    U=zeros(size(t)); 
    U(1)=ua; 
    for n=1:N 
     U(n+1)=U(n)+h*f(t(n),U(n)); 
    end 
    plot(t,U,'color',colors(jj)) 
end 
+0

赏识,顺利的方式来解决这个问题。 – user3503856