Effacer les filtres
Effacer les filtres

How to generate video file from animated plot in Matlab?

59 vues (au cours des 30 derniers jours)
Alireza Babaei
Alireza Babaei le 12 Jan 2021
Commenté : Alireza Babaei le 16 Oct 2022
Dear scholars,
I have a problem with generating .avi video file from animated file. I attach the code below, I appreciate if sb can give me a hand in figuring out the problem.
It generates the vidoe but the video is quite short and practically does NOT show anything!
Regards
x = linspace(0, 1*pi, 5000)
y = exp(-0.05.*100.*x).*sin(100.*x+0);
curve = animatedline('Color', 'k', 'LineStyle', '-', 'LineWidth', 2)
set(gca, 'XLim', [0 1*pi]);
box on
for i = 1 : length(x)
addpoints(curve, x(i), y(i));
drawnow
end
legend('Classical Rod Model', 'FontSize', 12)
xlabel('t (s)', 'FontSize', 12)
ylabel('Amplitude', 'FontSize', 12)
obj = VideoWriter('curve.avi');
obj.Quality = 100;
obj.FrameRate = 3;
open(obj);
f = getframe(gcf)
writeVideo(obj, f)
obj.close();

Réponse acceptée

KSSV
KSSV le 12 Jan 2021
It is because, you are writitng only the last frame into video...you need to keep the video writer code into a loop.
x = linspace(0, 1*pi, 1000) ;
y = exp(-0.05.*100.*x).*sin(100.*x+0);
curve = animatedline('Color', 'k', 'LineStyle', '-', 'LineWidth', 2) ;
set(gca, 'XLim', [0 1*pi]);
box on
f = cell(length(x),1) ;
for i = 1 : length(x)
addpoints(curve, x(i), y(i));
drawnow
f{i} = getframe(gcf) ;
end
legend('Classical Rod Model', 'FontSize', 12)
xlabel('t (s)', 'FontSize', 12)
ylabel('Amplitude', 'FontSize', 12)
obj = VideoWriter('curve.avi');
obj.Quality = 100;
obj.FrameRate = 3;
open(obj);
for i = 1:length(x)
writeVideo(obj, f{i}) ;
end
obj.close();
  4 commentaires
Les Beckham
Les Beckham le 8 Mar 2022
Try changing the last line of your code to
objmp.close();
Alireza Babaei
Alireza Babaei le 16 Oct 2022
Thanks for such a great help.
I was wondering how to create multiple animations in a single frame?
(just like plotting multiple pictures in a single plot using the subplot)
Is there sth similar?
Thanks!

Connectez-vous pour commenter.

Plus de réponses (0)

Catégories

En savoir plus sur Animation dans Help Center et File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by