用于不同颜色的循环

时间:2014-05-12 13:17:23

标签: matlab colors plot

我试图在for循环中绘制不同颜色的3条不同的线条。但是只显示了循环中的最后一种颜色。

hold on

for N = [20, 200, 2000]
    f=@(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

1 个答案:

答案 0 :(得分:1)

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

hold on
NN = [20 200 2000];
colors=['rgb'];
f=@(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