Plot Multiple Colours automatically in a for loop

195 visualizzazioni (ultimi 30 giorni)
Hi,
I am trying to plot a graph, with a different colour being used automatically for each line on the plot, is there a simple way to do this? Here is my code:
% Define a range of y values
y = [0:0.01:1];
hold on
% Create a loop, which calculates the velocity profile for each a_0
% coefficient in the range 0 => 2.67 with 0.267 increments:
for a_0 = [0:0.267:2.67];
for i = 1:length(y)
% Define boundary layer thickness delta as 99% U_inf
delta = 0.99;
% Define eta as a function of y position and the constant delta:
eta(i) = y(i)./delta;
% Calculate the velocity profile:
u_prof(i) = (a_0.*eta(i)) - ((((3./2).*a_0)-2).*(eta(i).^2)) - ((1- (a_0./2)).*(eta(i).^4));
end
% Plot the velocity profile for each a_0 coefficient
plot (u_prof,y)
grid on
end
hold off
Thanks,
Robbie

Risposta accettata

Chandra Kurniawan
Chandra Kurniawan il 11 Gen 2012
You should replace line
plot (u_prof,y)
with
plot (u_prof,y,'color',rand(1,3))
  3 Commenti
Rajan Kumar
Rajan Kumar il 25 Apr 2014
Modificato: Rajan Kumar il 25 Apr 2014
Why (1,3) can it be any other number?
Ilham Hardy
Ilham Hardy il 25 Apr 2014
No it can't.
To resembles the rgb input (1x3 matrix)

Accedi per commentare.

Più risposte (2)

C.J. Harris
C.J. Harris il 11 Gen 2012
I would suggest taking a look at the 'hold all' command. Just replace the line:
hold on
with:
hold all
That way you won't have to make any other modifications to your code.

Korosh Agha Mohammad Ghasemi
%https://zil.ink/korosh -------- Ways to contact me ----------
% Korosh Agha Mohammad Ghasemi !
% Chemical Engineering at Shiraz University
x=linspace(0,2,100);
figure;
for a=[0.1 0.5 1 2 4]
y=x.^a; %The function is hypothetical
if a == 0.1 %Any color can be substituted
y=x.^a;
plot(x,y,'k') %Now choose the color
hold on
elseif a == 0.5
y=x.^a;
plot(x,y,'b') %Now choose the color
hold on
elseif a==1
y=x.^a;
plot(x,y,'g') %Now choose the color
hold on
elseif a==2
y=x.^a;
plot(x,y,'r') %Now choose the color
hold on
elseif a==4
y=x.^a;
plot(x,y,'y') %Now choose the color
hold on
grid on
end
end

Categorie

Scopri di più su 2-D and 3-D Plots in Help Center e File Exchange

Prodotti

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by