Bonjour à tous, j'ai encore un probleme...
Je dispose de différentes images représentant la concentration en matière en supension dans le golfe de gascogne (variable suspmat). Je souhaite les moyenner pixel par pixel pour avoir une image moyenne.
La variable SuspMatt est une matrice MxN avec des valeurs qui correspondent à des concentration en matière en suspension en fonction des longitude et des latitudes.Mon problème c'est que pour chaque images, j'ai des pixels qui sont des NaN. Ce que je voudrait c'est que ces pixels ne soient pas pris en compte dans la moyenne . J'ai essayé le programme suivant mais ca ne me donne pas de bon résultats:
J'ai l'impression que le problème est dans if(isnan(SuspMatt1)~=1).Pour une image donnée, dès que un de mes pixel est un NaN, le programme suit la boucle pour tous les pixels :
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
41
42 function moyimageMES % Moyenne des concentrations en MES SuspMatt1=nc_varget(file,'suspended_matters'); lon1=nc_varget(file,'lon'); lat1=nc_varget(file,'lat'); somme=zeros(623,601); total=zeros(623,601); d=datenum('03/19/2006',23):datenum('03/20/2006',23); % en mettant les bonnes dates for n=1:numel(d) file=datestr(d(n),26); file=[strrep(file,'/','') '.nc']; if exist(file,'file')==2 if(isnan(SuspMatt1)~=1) somme=imadd(somme,SuspMatt1); total= immad(total,1); else somme=imadd(somme,0); total= immad(total,0); end end b=somme; c=total; moyenne=b/c; pcolor(lon1,lat1,moyenne) shading flat axis equal colormap(jet) caxis([0 100]) colorbar
et du coup ma moyenne finale = 0 pour l'ensemble de l'image. Comment faire pour lui dire de ne pas prendre en compte seulement les pixels qui sont des NaN?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 else somme=imadd(somme,0); total= immad(total,0);
Merci encore pour toute l'aide que vous pouvez m'apporter depuis ma découverte de Matlab et des joies de la programmation!!
Partager