我想修改函数的参数,然后将其绘制在一个循环中,但我遇到了问题。问题是我需要每个情节的标签和不同的颜色
就像是:
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 新手,但对其他语言有经验
我想修改函数的参数,然后将其绘制在一个循环中,但我遇到了问题。问题是我需要每个情节的标签和不同的颜色
就像是:
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 新手,但对其他语言有经验
对于一个情节上的多条线,请使用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))
要为每个图形设置不同的颜色和标签,您可以创建一个颜色图和一个标签元胞数组:
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