2013-02-22 47 views
2

我想修改一个函数的参数,然后在循环中绘制它,并且我遇到了问题。问题是,我需要的标签和不同颜色的每个情节多次绘制同一图形的不同版本

喜欢的东西:

hold on 

for n = N 

for t = Time_inv 

    error = func(n, t); 
    error_array_2(i) = error; 
    i = i + 1; 

end 
    plot (Time_inv, error_array_2); 
    i = 1; 
end 

我是新来的Matlab的,但与其他语言

回答

1

有关一个情节,使用多条线路经历hold all也许是legend

figure 
hold all 
plot(rand(1,10)) 
plot(rand(1,10)) 
plot(rand(1,10)) 
legend('label 1', 'label 2', 'label 3') 

对于一个图中的多个图,使用subplot

figure 
subplot(1,2,1) 
plot(rand(1,10)) 
subplot(1,2,2) 
plot(rand(1,10)) 

对于不同图中的地块,请使用figure

figure 
plot(rand(1,10)) 
figure 
plot(rand(1,10)) 
+0

这是对1个窗口中的所有情节的要求,因为图需要比较 – user929404 2013-02-22 13:50:04

+0

@ user929404见我的更新。 – shoelzer 2013-02-22 13:55:58

0

有不同的颜色和标签对于每个图形,你可以创建一个彩色地图和标签的电池阵列:

h = zeros(1, length(N)) 
name = cell(1, length(N)) 

cm = hsv(length(N)); 
for n = N 
    name{n} = ['condition ' num2str(n)]; 
    i = 1 
    for t = Time_inv 
     error = func(n, t); 
     error_array_2(i) = error; 
     i = i + 1; 
    end 
    h(n) = plot (Time_inv, error_array_2, 'color', cm(n,:)); 
    hold on  
end 

legend(h, name); 

既然你指出,你是新的MATLAB,我只是将提到你可以不需要迭代器i,因为函数通常在矩阵上工作。因此,你的脚本可以被缩短(节选):

for n = N 
    ... 
    error_array_2 = func(n, Time_inv); 
    ... 
end 
相关问题