function [M] = y2dquivm (ufile, vfile, szx, szy, dskip, opt) %ufile et vfile sous forme matricielle %ufile='fufasij'; % %vfile='fvfasij'; x% %szx='50'; % %szy='100'; % %dskip='0'; % entier qui doit etre > 0 et < ? %opt='0'; : %"une seule figure" : %'0' => affichage "brut" %'1' => affichage "enjolivé mais moins précis" % "t figures" : %'2' => affichage "brut" %'3' => affichage "enjolivé mais moins précis" %---------------------------------------------------------% %exemple d'utilisation : % - [M] = y2dquivm('fumji', 'fvmji', '100', '100', '1', '1'); % ce qui permet de faire apres : movie(M) % % - y2dquivm fumji fvmji 100 100 2 0; % - y2dquivm fvmij fumij 100 100 2 0; %may be ok if squared matrix ? %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % matlab proc to animate 2D variable space %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %--------- parametres d'affichage : reset(gcf) if (opt=='1' | opt=='3') % figure set(gcf,'Color',[0 0 0]); %sur fond noir end set(gca,'Position',[0 0 1 1]) %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %--------- positionnement de variables eval(['SZX = str2num(szx);']); % taille de l'axe des X eval(['SZY = str2num(szy);']); % taille de l'axe des Y SZSPACE = SZX*SZY; % d'où taille de l'espace eval(['pas = str2num(dskip);']);% echantillonage pour la % définition de l'affichage %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %--------- charger les vitesses dans les matrices U2D et V2D U2D = load(ufile); % vitesse u (axe des x) V2D = load(vfile); % vitesse v (axe des y) if (size(U2D,1)~=size(V2D,1) | size(U2D,2)~=size(V2D,2)) sprintf('y2dquivm:->error: files have not the same dimension') return; end nbpdt = size(U2D,1) / (SZY); % nombre de pas de temps %--------- boucle d'affichage for t=0:nbpdt-1, if (opt=='2' | opt=='3') % toutes les figures figure(t+1); end if (opt=='1' | opt=='3') % sur fond noir set(gcf,'Color',[0 0 0]); end set(gca,'Position',[0 0 1 1]) subx = 1:pas:SZX; % colonnes suby = (SZY*t)+1:pas:SZY*(t+1); % lignes U=U2D(suby, subx); V=V2D(suby, subx); quiver(U,V); if (opt=='1' | opt=='3') % faire joli set(gca,'Visible','off','Position',[0 0 1 1]) % virer les % axes et prendre toute la place end axis image M(t+1) = getframe; end %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %animation : if (opt=='1' | opt=='3') %faire joli %set(gca,'Visible','off','Position',[0 0 1 1]); set(gca,'Visible','off'); end movie(M,0); return %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % creation d'un fichier mpg % (sa plante + ou -) %========================================================== % faire d'abord un % cp ~/matlab/MPG/mpg* . % puis : % map=colormap % mpgwrite(M,map,'imagex.mpg') % % pour terminer proprement, faire % un clear all puis un close all et exit %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%