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

1 view (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!