Boucle for dans boucle if matlab

Résolu/Fermé
skiron Messages postés 3 Date d'inscription jeudi 4 novembre 2010 Statut Membre Dernière intervention 4 novembre 2010 - 4 nov. 2010 à 11:19
skiron Messages postés 3 Date d'inscription jeudi 4 novembre 2010 Statut Membre Dernière intervention 4 novembre 2010 - 4 nov. 2010 à 11:46
Bonjour,

Je souhaiterais faire une boucle for ou while dans une boucle if. Au moment de mon elseif, j'ai une erreur (illegal use of keyword elseif). Ca me fait la meme chose lorsque j'utilise switch et case (au 2e case: "illegal use of keyword case").

Merci.

if byte==0
bit=0;
while bit<=7 %les bits 1 et 2 sont à utiliser ensemble

if bit==0 | bit==3 | bit==4 | bit==5 | bit==6
mask=bitget(mask,bit); %on recupere le bit choisi
inuages=find(mask == 0); %on cherche les indices pr lesquels le bit=0
else if bit==1
mask1=bitget(mask,bit);
mask2=bitget(mask,bit+1);
inuages=find(mask1 == 0 & mask2 == 0);
end

mask=mask*0;
mask(inuages)=1; %on met à 1 les indices ou le bit=0 (ie y a nuage)
mask_grid=matref*NaN;
for i=1:prod(S_modis)
mask_grid(iind_modis(i),jind_modis(i))=mask(i); %on grille le mask
end
ind_cloud_ok=find(mask_grid~=1); %indices pr lesquels y a nuage
dTB_mask_grid=matref*NaN;
dTB_mask_grid(ind_cloud_ok)=dTB_grid(ind_cloud_ok); %on inclue le mask sur TB amsr
bit=bit+1;
end

elseif byte==3,
bit=0;
while bit<=1 % seuls les 2 premiers bits sont "pleins"
mask=bitget(mask,bit);
inuages=find(mask == 0);
mask=mask*0;
mask(inuages)=1;
mask_grid=matref*NaN;
for i=1:prod(S_modis)
mask_grid(iind_modis(i),jind_modis(i))=mask(i);
end
ind_cloud_ok=find(mask_grid~=1);
dTB_mask_grid=matref*NaN;
dTB_mask_grid(ind_cloud_ok)=dTB_grid(ind_cloud_ok);
bit=bit+1;
end

end

1 réponse

skiron Messages postés 3 Date d'inscription jeudi 4 novembre 2010 Statut Membre Dernière intervention 4 novembre 2010
4 nov. 2010 à 11:46
C'est bon, j'ai trouvé mon erreur, j'ai mis "else if" et pas "elseif" dans mon code.
0