Calculate mean of a matrix columnwise if a condition is met

I am stuck on a small coding issue.
I have a big matrix "A" and a scalar value "b" and I want to determine,
Expected value = Mean ( A -b) if A < b
for example if,
A = [10 10 10;10 5 5;10 5 5]
b = 10
C = b - A
C = [0 0 0; 0 -5 -5; 0 -5 -5]
Calculate mean = Expectation [C / (A<b ]
calculations of mean should be columnwise.

2 Kommentare

Could you complete your example? What is the resulting value(s) of C for the example you shared?
done!

Melden Sie sich an, um zu kommentieren.

 Akzeptierte Antwort

hosein Javan
hosein Javan am 12 Aug. 2020
A = [10 10 10;10 5 5;10 5 5]
b = 10
C = b - A
C(A>=b) = nan % replace all data out of specified range by nan
mean(C,'omitnan') % mean columns omitting nan

2 Kommentare

Thats absolutely perfect! Thanks
you're welcome. don't mention it.

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (0)

Community Treasure Hunt

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

Start Hunting!

Translated by