How can I change the color of the plot in each iteration in MATLAB?

legend, matlab, plot

Solution

Just use `hold all` instead of `hold on` and put the legend labels in a cell array

hold all
for i=1:8
    .
    .
    .
    plot(b,r);

    Leg{i} = ['qho-',num2str(i)];    

end
legend(Leg)

See this question for example: Sparse matrix plot matlab

NOTE:

From Matlab R2014b onward, `hold on` has been modified to act like `hold all`, i.e. change the colours of the plots each time one is plotted. The docs state that the `hold all` syntax will be removed in future releases.

Problem

The following is a part of my matlab code. As it's shown, I would like to plot 8 curves in one plot. But I want to make each curve with one unique color. I also want to change the legend so that it changes for each `i`. For instance, for i=1 the legend will be gho-1, for i=2 gho-2 and so on. I want it to be automatic because I will change the `i` sometimes from ex:(i=1:20). ``` for i=1:8 . . . plot(b,r,'b'); legend(['qho-',num2str(i)]); hold on end ``` How can I do this? Hi again, I have other question: if I have the following ``` for i=1:8 . b1=(1:3,:) b2=(3:6,:) figure(1);plot(b1,r,'*'); figure(2);plot(b2,r,'*'); Leg{i} = ['qho-',num2str(i)]; end legend(Leg) ``` I got only color legend for the last figure only. not for both.. how can I solve that ?! Thanks again

Original source