How can I ignore 0 values when computing the mean over the third dimensional of a 3D matrix?

20 vues (au cours des 30 derniers jours)
Hi,
I have a 3D matrix size 951x301x720 let call it A.
I want to get a 951x301 matrix B with the mean of A over the third dimension.
I computed the mean over the third dimension with B = mean(A,3) but I have a lot of zeros in my matrix and I do not want the mean to be affected by the 0 values.
How can I ignore the 0?
Thank you

Réponse acceptée

Asad (Mehrzad) Khoddam
Asad (Mehrzad) Khoddam le 11 Oct 2020
You can set 0 values to NaN. Then find the mean of non NaN values;
Ap=A;
Ap(Ap==0)=NaN;
B=mean(Ap,3,'omitnan')
  4 commentaires
Rik
Rik le 11 Oct 2020
Yes, that is what I meant, thank you for correcting it.

Connectez-vous pour commenter.

Plus de réponses (0)

Catégories

En savoir plus sur Resizing and Reshaping Matrices dans Help Center et File Exchange

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by