我想修改一个函数的参数,然后在循环中绘制它,我遇到了问题。问题是我需要每个情节的标签和不同的颜色
类似的东西:
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的新手,但对其他语言有经验
答案 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