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'utiliseDisons pour exemple la matrice :Code:mean(mean(matrice))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 !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]
J'ai essaye 2 methodes :
Mais l'une comme l'autre me sortent une matrice vide. Pourquoi?Code:matrice(matrice==0)=[] matrice(matrice==0)=NaN
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 :
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)?Code:a=log2(mat1./mat2) pcolor(x,y,a) % x et y etant les coordonnees de a
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 !!
-----