Animating plot in a for loop

조회 수: 4 (최근 30일)
Ege Arsan
Ege Arsan 2021년 1월 16일
편집: Cris LaPierre 2021년 1월 16일
I have the following figure and i want to animate it with addpoints but couldn't work it out.
dy is the displacement from an ode solver, which is a matrix of 549x4 doubles and n = 2, so i only plot the dy(:,3) and dy(:,4)
  댓글 수: 2
Image Analyst
Image Analyst 2021년 1월 16일
I don't know. MATLAB cannot convert your image into code. Attach your code so we can run it. What is "addpoints" - is that a built-in or custom function? Attach dy in a .mat file. Make it easy to help you not hard.
Ege Arsan
Ege Arsan 2021년 1월 16일
Sorry. Here are the codes. You can run the code Vibration_Plot.m and enter the forces as '0' (they should be in quotes). The MDK.m is only for generating the matrices.

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

채택된 답변

Cris LaPierre
Cris LaPierre 2021년 1월 16일
Use the animatedline function. Follow this example from the documentation.
  댓글 수: 6
Cris LaPierre
Cris LaPierre 2021년 1월 16일
편집: Cris LaPierre 2021년 1월 16일
It's easier to debug one thing at a time. Once you have the ode working, then focus on the animation. It's usually a good idea to only include in the for loop code that needs to be run multiple times. The title, labels, and grid commands can be set once, so move those before the loop.
It is my suspicion you will have to create an animated line for each subplot.
Here is a simplified working example that you can modify to your needs.
L=animatedline;
axis([ti,tf,-4,4])
title(['Response q',num2str(i)]);
xlabel('Time, seconds'); ylabel('Displacement, m');
grid on;
for i = 1:length(dy)
addpoints(L,t(i),dy(i,1));
drawnow
end
Ege Arsan
Ege Arsan 2021년 1월 16일
Thank you so much! I will work on this.

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

추가 답변 (0개)

카테고리

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

태그

Community Treasure Hunt

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

Start Hunting!

Translated by