Animate results from PDE toolbox

Hi,
I am trying to animate results from a PDE toolbox script.
F=figure(1);
MyVideo = VideoWriter(sprintf('2DSys.avi'));
MyVideo.FrameRate = 10;
MyVideo.Quality = 100;
open(MyVideo);
for i = 1:length(result.SolutionTimes)
pdeplot(MyModel,'XYData',result.NodalSolution(:,i),'ColorBar','off');
title({['Time=' num2str(result.SolutionTimes(i)) 's']})
% colormap(jet)
% axis tight
% ax = gca;
% axis off
M(:,i) = getframe(F);
writeVideo(MyVideo, M(:,i));
drawnow
end
But I don't have any frames written to my file. The script is executing without errors on my pc.
On analyzing my M output structure I see that the colormap entries turn out empty. Attaching M as well.

 Respuesta aceptada

VBBV
VBBV el 22 de Nov. de 2022
M(:,i) = getframe(gcf); % use gcf

7 comentarios

Hashim
Hashim el 22 de Nov. de 2022
Thank you for your input but it's not working for me.
VBBV
VBBV el 22 de Nov. de 2022
Editada: VBBV el 22 de Nov. de 2022
On analyzing my M output structure I see that the colormap entries turn out empty.
because you have commented colormap and disabled it in pdeplot
pdeplot(MyModel,'XYData',result.NodalSolution(:,i));
title({['Time=' num2str(result.SolutionTimes(i)) 's']})
colormap(jet)
VBBV
VBBV el 22 de Nov. de 2022
Editada: VBBV el 22 de Nov. de 2022
close(MyVideo) % add this line too after end of for loop
you also need to close video after writing data, it doesnt appear in your code. otherwise , Videowriter still expects more data to be written to complete the video
Hashim
Hashim el 22 de Nov. de 2022
No, I am afraid it's still not running. Have you been able to make it work?
VBBV
VBBV el 22 de Nov. de 2022
What is "stll not running" ? can you attach relevant files ? e.g. MyModel
Hashim
Hashim el 22 de Nov. de 2022
Editada: Hashim el 22 de Nov. de 2022
The script that I attached is not running. I have already attached the result variable that has the values I want to animate. The rest of the script seems to be working fine.
Hashim
Hashim el 6 de Dic. de 2022
Editada: Hashim el 6 de Dic. de 2022
This kinda works
figure;
maxc = max(max(result.NodalSolution));
minc = min(min(result.NodalSolution));
MyVideo = VideoWriter(sprintf('2DSys.avi'));
MyVideo.FrameRate = 10;
MyVideo.Quality = 100;
open(MyVideo);
for i = 1:10
pdeplot(MyModel,'XYData',result.NodalSolution,'ColorBar','off','Mesh','off');
title({['Time=' num2str(i) 's']})
caxis([minc maxc]);
colormap(jet)
axis tight
ax = gca;
ax.DataAspectRatio = [1 1 1];
M(i) = getframe(gcf);
writeVideo(MyVideo, M);
end
close(MyVideo)

Iniciar sesión para comentar.

Más respuestas (0)

Productos

Versión

R2021b

Etiquetas

Preguntada:

el 21 de Nov. de 2022

Editada:

el 6 de Dic. de 2022

Community Treasure Hunt

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

Start Hunting!

Translated by