Bonjour,

Je voulais voir si qqun avait une idée pour améliorer ce code. Les 2 premières boucles servent à rechercher dans une matrice 3D les éléments qui répondent aux conditions du FIND. Je mets le code ci-dessous pour que vous compreniez mieux.Ensuite, je fais une moyenne sur les éléments qui correspondent aux indices. Ce code s'exécute pendant 30min et je voudrais savoir s'il n'y a pas moyen de supprimer une ou 2 boucles pour gagner en rapidité.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
for a=1:1:length(coordY)
 
    for b=1:1:length(coordX)
 
        [f g]=find(mat(:,2,:)>=(depla(a,b,1)-0.25)&mat(:,2,:)<(depla(a,b,1)+0.25)&mat(:,3,:)>=(depla(a,b,2)-0.25)&mat(:,3,:)<(depla(a,b,2)+0.25));
 
        if isempty(f)==0
 
            depla(a,b,3)=length(f)/freq_acq;
 
            hauteur=[];
            debit=[];
            vitesse=[];
            vvent=[];
            orientvent=[];
            orientnord=[];
 
            for j=1:1:length(f)
 
                hauteur=[hauteur;mat(f(j),4,g(j))];
                debit=[debit;mat(f(j),5,g(j))];
                vitesse=[vitesse;mat(f(j),6,g(j))];
                vvent=[vvent;mat(f(j),7,g(j))];
                orientvent=[orientvent;mat(f(j),8,g(j))];
                orientnord=[orientnord;mat(f(j),9,g(j))];
 
            end
 
            depla(a,b,4)=mean(hauteur);
            depla(a,b,5)=mean(debit);
            depla(a,b,6)=mean(vitesse);
            depla(a,b,7)=mean(vvent);
            depla(a,b,8)=mean(orientvent);
            depla(a,b,9)=mean(orientnord);
 
        end
 
    end
 
end
D'avance je vous remercie