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

4

2 回答 2

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))
于 2013-02-22T13:43:26.717 回答
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
于 2013-02-22T14:12:39.597 回答