How to calculate the mean value of the non vero value in a vector?

3 views (last 30 days)
How to calculate the mean value of the non vero value in a vector?
For example there is a vector contains 3 values M = [0.7,0.3,0]
the mean value in this case should be 0.5

Accepted Answer

Star Strider
Star Strider on 3 Sep 2022
M = [0.7,0.3,0];
Mmean = mean(M(M~=0))
Mmean = 0.5000

More Answers (1)

James Tursa
James Tursa on 3 Sep 2022
Edited: James Tursa on 3 Sep 2022
Another way that doesn't require any data copying:
M = [0.7,0.3,0];
sum(M)/nnz(M)
ans = 0.5000
Be aware that if there are no non-zero elements, this will return NaN (same as Star's method).

Community Treasure Hunt

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

Start Hunting!

Translated by