多次绘制同一图表的不同版本

时间:2013-02-22 13:36:04

标签: matlab plot matlab-figure

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

类似的东西:

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的新手,但对其他语言有经验

2 个答案:

答案 0 :(得分: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))

答案 1 :(得分: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