[Matlab] ignorer 0 et gerer 0 dans un log
Répondre à la discussion
Affichage des résultats 1 à 2 sur 2

[Matlab] ignorer 0 et gerer 0 dans un log



  1. #1
    gorben

    [Matlab] ignorer 0 et gerer 0 dans un log


    ------

    Salut,

    J'ai 2 problemes sous matlab et j'avoue que toute aide serait plus que la bienvenue

    1/ j'ai une photo que j'ouvre sous matlab et qui se charge dans une matrice de taille 200 * 200 (exemple). Cette matrice comprend une serie de valeur en son centre correspondant au niveau de gris de l'image initiale et des 0 tout autour de ces valeurs centrales (le fond est noir parfait). Le probleme c'est que j'aimerais calculer la moyenne de la matrice, mais que sur les valeurs non 0 (eventuellement quelques 0 mais pas autant). Pour calculer la moyenne j'utilise
    Code:
    mean(mean(matrice))
    Disons pour exemple la matrice :
    Code:
    [0 0 0 0 0 0 0 0
    0 0 0 0 0 0 0 0
    0 0 1 0 0 0 0 0 
    0 0 2 3 0 0 0 0
    0 0 0 4 5 0 0 0
    0 0 0 6 7 8 0 0
    0 0 0 0 0 9 0 0
    0 0 0 0 0 0 0 0
    0 0 0 0 0 0 0 0]
    Ce que j'aimerais faire c'est soit retailler la matrice pour que le moins de 0 possible apparaissent, soit encore mieux, ignorer les 0 lors du calcul de la moyenne !

    J'ai essaye 2 methodes :

    Code:
    matrice(matrice==0)=[]
    
    matrice(matrice==0)=NaN
    Mais l'une comme l'autre me sortent une matrice vide. Pourquoi?

    2/ Ma deuxieme question porte sur les log.

    Disons que j'ai deux matrices de meme taille mais differente dans leur contenu. J'aimerais faire comme suit :
    Code:
    a=log2(mat1./mat2)
    pcolor(x,y,a)               % x et y etant les coordonnees de a
    le probleme c'est que mes matrices viennent de 1/ elles comportent donc des valeurs positive et des zeros. Comment faire pour gerer ca et eviter d'avoir des log2(0/0)?
    De plus, je n'ai aucun interet a representer un log2(0/0), mais comment representer un log2(0/mat2) ou log2(mat1/0)? Pour le denier point, eventuellement je pensais a une couleur differente de la colormap avec par exemple le rouge pour les pixels qui correspondent a un log2(0/mat2) et un bleu pour les pixels de log2(mat1/0).

    Merci pour toutes les infos que vous pourrez me donner !!

    -----

  2. #2
    gorben

    Re : [Matlab] ignorer 0 et gerer 0 dans un log

    Salut,

    Bon j'ai regle mon probleme sur la matrice et j'ai vire mes 0.

    Pour mon log2, en fait matlab me donne log2(0/x)=-inf et log2(x/0)=+inf.
    Le probleme c'est que mon calcul de log2 me donne des valeurs entre -3 et +3 (hors +/-inf). Du coup quand pcolor rencontre une +/-inf il adapte la colormap et il est impossible de voir de variations dans la gamme +3/-3 (celle qui m'interesse). Existe t'il un moyen d'obliger matlab a donner une couleur differente de la colormap au valeurs "hors normes"?

    Merci

Discussions similaires

  1. Graph "courbe" dans une representation log-log
    Par invite60e37dfb dans le forum Mathématiques du supérieur
    Réponses: 1
    Dernier message: 24/06/2010, 14h53
  2. Gérer les comptes utilisateurs dans un site
    Par invitefb5bef0c dans le forum Internet - Réseau - Sécurité générale
    Réponses: 5
    Dernier message: 12/01/2010, 02h49
  3. Transformation log & loi log-normale
    Par invite9cd74b20 dans le forum Mathématiques du supérieur
    Réponses: 0
    Dernier message: 04/12/2009, 09h58
  4. Construction des diagrammes log-log
    Par invite60012124 dans le forum Chimie
    Réponses: 0
    Dernier message: 04/10/2007, 17h01
  5. Colorbar/Colormap en LOG dans MATLAB
    Par invitea13192b9 dans le forum Mathématiques du supérieur
    Réponses: 0
    Dernier message: 20/05/2007, 11h54
Dans la rubrique Tech de Futura, découvrez nos comparatifs produits sur l'informatique et les technologies : imprimantes laser couleur, casques audio, chaises gamer...