Boucle for dans boucle if matlab

Résolu
skiron Messages postés 3 Date d'inscription   Statut Membre Dernière intervention   -  
skiron Messages postés 3 Date d'inscription   Statut Membre Dernière intervention   -
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   Statut Membre Dernière intervention  
 
C'est bon, j'ai trouvé mon erreur, j'ai mis "else if" et pas "elseif" dans mon code.
0