[1] | 1 | function [M] = y2dquivm (ufile, vfile, szx, szy, dskip, opt) |
---|
| 2 | %ufile et vfile sous forme matricielle |
---|
| 3 | %ufile='fufasij'; % |
---|
| 4 | %vfile='fvfasij'; x% |
---|
| 5 | %szx='50'; % |
---|
| 6 | %szy='100'; % |
---|
| 7 | %dskip='0'; % entier qui doit etre > 0 et < ? |
---|
| 8 | %opt='0'; : |
---|
| 9 | %"une seule figure" : |
---|
| 10 | %'0' => affichage "brut" |
---|
| 11 | %'1' => affichage "enjolivé mais moins précis" |
---|
| 12 | % "t figures" : |
---|
| 13 | %'2' => affichage "brut" |
---|
| 14 | %'3' => affichage "enjolivé mais moins précis" |
---|
| 15 | %---------------------------------------------------------% |
---|
| 16 | %exemple d'utilisation : |
---|
| 17 | % - [M] = y2dquivm('fumji', 'fvmji', '100', '100', '1', '1'); |
---|
| 18 | % ce qui permet de faire apres : movie(M) |
---|
| 19 | % |
---|
| 20 | % - y2dquivm fumji fvmji 100 100 2 0; |
---|
| 21 | % - y2dquivm fvmij fumij 100 100 2 0; %may be ok if squared matrix ? |
---|
| 22 | |
---|
| 23 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
---|
| 24 | % matlab proc to animate 2D variable space |
---|
| 25 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
---|
| 26 | %--------- parametres d'affichage : |
---|
| 27 | reset(gcf) |
---|
| 28 | if (opt=='1' | opt=='3') |
---|
| 29 | % figure |
---|
| 30 | set(gcf,'Color',[0 0 0]); %sur fond noir |
---|
| 31 | end |
---|
| 32 | set(gca,'Position',[0 0 1 1]) |
---|
| 33 | |
---|
| 34 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
---|
| 35 | %--------- positionnement de variables |
---|
| 36 | eval(['SZX = str2num(szx);']); % taille de l'axe des X |
---|
| 37 | eval(['SZY = str2num(szy);']); % taille de l'axe des Y |
---|
| 38 | SZSPACE = SZX*SZY; % d'où taille de l'espace |
---|
| 39 | |
---|
| 40 | eval(['pas = str2num(dskip);']);% echantillonage pour la |
---|
| 41 | % définition de l'affichage |
---|
| 42 | |
---|
| 43 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
---|
| 44 | |
---|
| 45 | %--------- charger les vitesses dans les matrices U2D et V2D |
---|
| 46 | U2D = load(ufile); % vitesse u (axe des x) |
---|
| 47 | V2D = load(vfile); % vitesse v (axe des y) |
---|
| 48 | |
---|
| 49 | if (size(U2D,1)~=size(V2D,1) | size(U2D,2)~=size(V2D,2)) |
---|
| 50 | sprintf('y2dquivm:->error: files have not the same dimension') |
---|
| 51 | return; |
---|
| 52 | end |
---|
| 53 | |
---|
| 54 | nbpdt = size(U2D,1) / (SZY); % nombre de pas de temps |
---|
| 55 | |
---|
| 56 | %--------- boucle d'affichage |
---|
| 57 | for t=0:nbpdt-1, |
---|
| 58 | if (opt=='2' | opt=='3') % toutes les figures |
---|
| 59 | figure(t+1); |
---|
| 60 | end |
---|
| 61 | if (opt=='1' | opt=='3') % sur fond noir |
---|
| 62 | set(gcf,'Color',[0 0 0]); |
---|
| 63 | end |
---|
| 64 | |
---|
| 65 | set(gca,'Position',[0 0 1 1]) |
---|
| 66 | |
---|
| 67 | subx = 1:pas:SZX; % colonnes |
---|
| 68 | suby = (SZY*t)+1:pas:SZY*(t+1); % lignes |
---|
| 69 | |
---|
| 70 | U=U2D(suby, subx); |
---|
| 71 | V=V2D(suby, subx); |
---|
| 72 | |
---|
| 73 | quiver(U,V); |
---|
| 74 | |
---|
| 75 | if (opt=='1' | opt=='3') % faire joli |
---|
| 76 | set(gca,'Visible','off','Position',[0 0 1 1]) % virer les |
---|
| 77 | % axes et prendre toute la place |
---|
| 78 | end |
---|
| 79 | |
---|
| 80 | axis image |
---|
| 81 | M(t+1) = getframe; |
---|
| 82 | end |
---|
| 83 | |
---|
| 84 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
---|
| 85 | %animation : |
---|
| 86 | if (opt=='1' | opt=='3') %faire joli |
---|
| 87 | %set(gca,'Visible','off','Position',[0 0 1 1]); |
---|
| 88 | set(gca,'Visible','off'); |
---|
| 89 | end |
---|
| 90 | movie(M,0); |
---|
| 91 | return |
---|
| 92 | |
---|
| 93 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
---|
| 94 | % creation d'un fichier mpg |
---|
| 95 | % (sa plante + ou -) |
---|
| 96 | %========================================================== |
---|
| 97 | % faire d'abord un |
---|
| 98 | % cp ~/matlab/MPG/mpg* . |
---|
| 99 | % puis : |
---|
| 100 | % map=colormap |
---|
| 101 | % mpgwrite(M,map,'imagex.mpg') |
---|
| 102 | % |
---|
| 103 | % pour terminer proprement, faire |
---|
| 104 | % un clear all puis un close all et exit |
---|
| 105 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% |
---|
| 106 | |
---|
| 107 | |
---|
| 108 | |
---|
| 109 | |
---|
| 110 | |
---|
| 111 | |
---|