Problem with hold on plot

조회 수: 1 (최근 30일)
Cristián Vera
Cristián Vera 2020년 2월 3일
댓글: Adam Danz 2020년 2월 4일
Hi, im working with some data, specifically the particles in a nozzle.
The point is that I want to create an animation using plot and for. To do this, I made a sketch of the nozzle using simple lines with plot, then for takes care of showing particles.
The problem I have is that because I need to show the sketch and the particles, I use hold on, which generates a repetition in the data of particles, which I dont want. How can I solve this problem? Be able to graph the particles and the sketch in the animation without repeating particle data.
Here is the sketch:
bosquejo.jpg
And that's how it shouldn't look:
no.jpg
And this is how it should look, but with the background sketch:
si.JPG
Animation code, just in case:
figure
hold on
title(['Velocidad en alimentador ' titulo])
for time=1:20:size(Xt,2);
pointsize=5;
plot([180e-3,180e-3],[-10e-3,10e-3],'LineWidth',4)
plot([0,20]*1e-3,[17.5,17.5]*1e-3,'k',[20,40]*1e-3,[17.5,1]*1e-3,'k',[40,170]*1e-3,[1,8]*1e-3,'k',[170,170]*1e-3,[8,-8]*1e-3,'k',[170,40]*1e-3,[-8,-1]*1e-3,'k',[40,20]*1e-3,[-1,-17.5]*1e-3,'k',[20,0]*1e-3,[-17.5,-17.5]*1e-3,'k',[0,0]*1e-3,[-17.5,17.5]*1e-3,'k')
scatter(Xt(:,time),Yt(:,time), pointsize, Vt(:,time),'filled')
ylim([-18e-3,18e-3])
xlim([0e-3,180e-3])
pause(0.001)
end
I hope the question is understood.
Greeting and thank you very much in advance!

채택된 답변

Adam Danz
Adam Danz 2020년 2월 3일
The loop should only contain the data you're adding to the plot.
Try this out.
figure
axes()
hold on
ylim([-18e-3,18e-3])
xlim([0e-3,180e-3])
title(['Velocidad en alimentador ' titulo])
pointsize=5;
plot([180e-3,180e-3],[-10e-3,10e-3],'LineWidth',4)
plot([0,20]*1e-3,[17.5,17.5]*1e-3,'k',[20,40]*1e-3,[17.5,1]*1e-3,'k',[40,170]*1e-3,[1,8]*1e-3,'k',[170,170]*1e-3,[8,-8]*1e-3,'k',[170,40]*1e-3,[-8,-1]*1e-3,'k',[40,20]*1e-3,[-1,-17.5]*1e-3,'k',[20,0]*1e-3,[-17.5,-17.5]*1e-3,'k',[0,0]*1e-3,[-17.5,17.5]*1e-3,'k')
for time=1:20:size(Xt,2);
scatter(Xt(:,time),Yt(:,time), pointsize, Vt(:,time),'filled')
pause(0.001)
end
  댓글 수: 9
Cristián Vera
Cristián Vera 2020년 2월 4일
It worked!!! Thank you for your time and kindly help!
What a relief... =)
Adam Danz
Adam Danz 2020년 2월 4일
Ha! Glad I could help.

댓글을 달려면 로그인하십시오.

추가 답변 (0개)

카테고리

Help CenterFile Exchange에서 Animation에 대해 자세히 알아보기

제품


릴리스

R2018b

Community Treasure Hunt

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

Start Hunting!

Translated by