How to find the mean and leave out the zeros?

129 visualizzazioni (ultimi 30 giorni)
I've got a matrix with 4 numbers (38,46,47,,0). I want to find the mean for the numbers 38, 46 and 47. I want to leave out the zero in my commando
My code:
mean(Gemiddelde_Heuphoek{welke_pp} = mean(Gemiddelde_gewrichtshoek.Heuphoek.meting)
%the code on the right of the equal sign contains the 4 numbers.
%the code on the left of the equal sign calculates the mean of the 4 numbers.
But I want to create a code who leaves out the zeros en calculates the mean for only the non-zero elements.

Risposta accettata

Sean de Wolski
Sean de Wolski il 22 Dic 2014
mnz = mean(nonzeros(x))

Più risposte (1)

Image Analyst
Image Analyst il 22 Dic 2014
Try this:
nonZeroIndexes = m ~= 0; % m is your row vector array of numbers.
theMean = mean(m(nonZeroIndexes));
m(nonZeroIndexes) selects only the non-zero numbers and so only those numbers will be considered by the mean() function.

Categorie

Scopri di più su Creating and Concatenating Matrices in Help Center e File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by