2014-05-12 69 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