plotting data in a loop
Mostrar comentarios más antiguos
I'm trying to plot a bar graph that shows a value that's fixed at the beginning of the loop (XSSUPDEM) and in the same graph show how another series is growing (RAMPINGGEN(1)).
while XSSUPDEM + RAMPINGGEN(1)<0
OFFSIZE=SUPSTACK(ROWVALSUP,5);
RAMPRATE=SUPSTACK(ROWVALSUP,8);
MINRAMP=OFFSIZE/RAMPRATE;
if MINRAMP>10 && RAMPRATE*10 < abs(XSSUPDEM + RAMPINGGEN(1))
NUMINTERVALS=floor(MINRAMP/10);
for j=1:NUMINTERVALS;
RAMPINGGEN(j)=RAMPINGGEN(j)+RAMPRATE*10;
end
RAMPINGGEN(j+1)=RAMPINGGEN(j+1)+(OFFSIZE-((NUMINTERVALS)*(RAMPRATE*10)));
elseif MINRAMP>10 && RAMPRATE*10 > abs(XSSUPDEM+ RAMPINGGEN(1))
RAMPINGGEN(1)=RAMPINGGEN(1)+abs(XSSUPDEM + RAMPINGGEN(1));
elseif MINRAMP<10 && OFFSIZE < abs(XSSUPDEM + RAMPINGGEN(1))
RAMPINGGEN(1)=RAMPINGGEN(1)+OFFSIZE;
elseif MINRAMP<10 && OFFSIZE > abs(XSSUPDEM + RAMPINGGEN(1))
RAMPINGGEN(1)=RAMPINGGEN(1)+abs(XSSUPDEM + RAMPINGGEN(1));
bar([abs(XSSUPDEM) abs(RAMPINGGEN(1))], 'stacked');
end
Respuestas (1)
Oleg Komarov
el 23 de Jul. de 2011
Is this what you're trying to achieve?
A = rand(10,1);
B = rand(10,1);
hh = bar([A B], 'stacked');
for n = 1:10
set(hh(2),'Ydata', get(hh(2),'Ydata') + rand(1,10));
pause(.2)
end
5 comentarios
Amy
el 23 de Jul. de 2011
Oleg Komarov
el 23 de Jul. de 2011
It doesn't matter if it's a for or while.
To be able to "grow" B, you have to call bar outside the loop and then set B's Ydata inside the loop otherwise it will replot the bar at each iteration.
Amy
el 23 de Jul. de 2011
Amy
el 23 de Jul. de 2011
Oleg Komarov
el 23 de Jul. de 2011
What do you get with size([abs(XSSUPDEM) abs(RAMPINGGEN(1))])?
Categorías
Más información sobre 2-D and 3-D Plots en Centro de ayuda y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!