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 | |
---|