Matlab - CÓMO HACER UNA ANIMACIÓN CON VARIAS FIGURAS (CADA FIGURA EN UN TIEMPO DISTINTO)

 
Vista:
sin imagen de perfil

CÓMO HACER UNA ANIMACIÓN CON VARIAS FIGURAS (CADA FIGURA EN UN TIEMPO DISTINTO)

Publicado por ricardo (9 intervenciones) el 14/03/2016 19:36:54
No se si alguien podrá ayudarme pero tengo varios archivos .dat con los datos de una simulación de dinámica de fluidos, lo que quería es hacer en matlab una animación desde el instante t=0 hasta el desarrollo del flujo, pero yo solo se abrir uno de los archivos y ver una de las figuras en un instante de tiempo determinado. Repito que cada archivo .dat es de un instante t. Alguna idea para desarrollar mi video?
Gracias
Ricardo
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

CÓMO HACER UNA ANIMACIÓN CON VARIAS FIGURAS (CADA FIGURA EN UN TIEMPO DISTINTO)

Publicado por Usuario (5 intervenciones) el 15/03/2016 02:49:25
Un cordial saludo Ricardo...

Desconozco la cantidad de datos que tienes en tus archivos .dat, pero podemos hacer un pequeño ejercicio que quizá sirva como ejemplo para iniciar.


1
2
3
4
5
6
7
8
9
10
11
12
13
14
%% El código inicia desde aqui
 
Resultados = [-1 10 45 13 0 98 15 16 78 98 12 35 18 7 9 18 75 23 65]; %Aqui estarían los resultados de 19 archivos.dat
%Se que en fluidos se manejan más variables pero para iniciar y hacernos una idea general podría ser con estos datos...
 
figure(1);
for Ciclo=1:length(Resultados)
    Datos_a_graficar(Ciclo)=Resultados(Ciclo); %#ok<SAGROW>
    plot(Datos_a_graficar)
    drawnow;
    pause(0.4);
end
 
%% El código finaliza aquí


Si puedes mostrarnos un archivo.dat podríamos mejorar el algoritmo.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

CÓMO HACER UNA ANIMACIÓN CON VARIAS FIGURAS (CADA FIGURA EN UN TIEMPO DISTINTO)

Publicado por ricardo (9 intervenciones) el 15/03/2016 19:24:48
Gracias por la respuesta y hasta ahora, haciendo algo parecido a lo que has dicho, viendo la misma figura, puedes observar como se desarrolla el flujo, que es más o menos lo que quería. Para ello lo que he hecho ha sido crear un bucle que abre cada archivo de forma seguida

for k=1:n
%Create a vector with the name of all paths

name=[path,'SV_2D_Zico_',int2str(temp(k)),'.dat'];

matrix=load(name);


, por lo que en cada iteracción realiza miles de operaciones.

¿Existe alguna manera de guardar todas estas figuras y hacer una especie de animación (archivo .avi o algo parecido) para que cada vez que quiera verlo no tenga que correr el programa?

Gracias
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

CÓMO HACER UNA ANIMACIÓN CON VARIAS FIGURAS (CADA FIGURA EN UN TIEMPO DISTINTO)

Publicado por ricardo (9 intervenciones) el 15/03/2016 22:53:50
Solucionado, me contesto a mi mismo.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
n=132
 
for k=1:n
 
%Aquí viene el programa
 
 % creo la gráfica:
 
pcolor(x,y,rho),colorbar;
view(0,90);
shading flat;
title('rho');xlabel('x');ylabel('y')
lighting phong;
 
%con esto creo el vídeo pero no lo guardo ni visualizo:
 
mov(k)=getframe
end
 
%para crear un vídeo incompresible .avi llamado name utilizo lo siguiente:
 
   uncompressedVideo = VideoWriter('name.avi', 'Uncompressed AVI');
   open(uncompressedVideo);
   writeVideo(uncompressedVideo, mov);
   close(uncompressedVideo);

Y ya está.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar