Boucle for dans boucle if matlab
Résolu
skiron
Messages postés
4
Statut
Membre
-
skiron Messages postés 4 Statut Membre -
skiron Messages postés 4 Statut Membre -
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
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
A voir également:
- Boucle for dans boucle if matlab
- Downloader for pc - Télécharger - Téléchargement & Transfert
- Xiaomi s'éteint tout seul et se rallume en boucle - Forum Xiaomi
- Mise à disposition de boucle locale dédiée ✓ - Forum Freebox
- Vlc lecture en boucle ✓ - Forum Lecteurs et supports vidéo
- Huawei s'allume et s'éteint en boucle - Forum Huawei