我想修改函数的参数,然后将其绘制在一个循环中,但我遇到了问题。问题是我需要每个情节的标签和不同的颜色
就像是:
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