A l'aide !

Je m'efforce d'éliminer, via des conditions, toutes les valeurs NaN ou inf qui me pourrissent la vie, mais celles-ci sont partout et se cachent bien !
Avez vous un moyen de les dégager genre NaN | inf = 0

Voici mon code :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
 if diffIm(x,y,posIm) < seuil
                        ADC(x,y,posIm) = 0;
                    elseif log(diffIm(x,y,posIm-bIm+1))/(diffIm(x,y,posIm))/(b(bIm)) == NaN
                        ADC(x,y,posIm) = 0;
                    elseif log(diffIm(x,y,posIm-bIm+1))/(diffIm(x,y,posIm))/(b(bIm)) == inf
                        ADC(x,y,posIm) = 0;
                    elseif log(diffIm(x,y,posIm-bIm+1))/(diffIm(x,y,posIm))/(b(bIm)) == -inf
                        ADC(x,y,posIm) = 0;
                    else
                        ADC(x,y,posIm)=log(diffIm(x,y,posIm-bIm+1))/(diffIm(x,y,posIm))/(b(bIm));
                    end
et ma commande :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
factDiffIm(:,:,bIm) = diffIm(:,:,(slice-1)*length(b) + bIm);
        factADCIm(:,:,bIm) = ADC(:,:,(slice-1)*length(b) + bIm);
 
    [A,Psi,T,stats,F_diff] = factoran(reshape(factDiffIm,[],length(b)),3,'normalize',0);
    [A,Psi,T,stats,F_adc] = factoran(reshape(factADCIm,[],length(b)),3,'normalize',0);
Et biensûr l'erreur :
??? Error using ==> svd
Input to SVD must not contain NaN or Inf.

Error in ==> factoran at 171
s = svd(qrxR);
Je suis preneur de toute solution, même consommatrice de temps pour les SUPPRIMER !!

Merci à vous