Calculating mean over column with condition

Multi tool use
Multi tool use


Calculating mean over column with condition



So my question is as follows: I have a matrix (let's take



A = [ 1 11 22 33; 44 13 12 33; 1 14 33 44,]


A = [ 1 11 22 33; 44 13 12 33; 1 14 33 44,]



as an example) where I want to calculate the mean for all columns separately. The tricky part is that I only want to calculate the mean for those numbers in each column which are greater than the column 25th percentile.



I was thinking to simply create the 25th percentile and then use this as a criterion for selecting rows. This, unfortunately, does not work.



In order to further clarify: What should happen is to go through each column and calculate the 25th percentile



prctile(A,25,1)


prctile(A,25,1)



And then calculating the mean only for those numbers which are respectively to their column bigger than the percentile.



Any help?
Thanks!




1 Answer
1



You can create a version of A which is NaN for values below the 25th percentile, then use the 'omitnan' flag in mean to exclude those points:


A


NaN


'omitnan'


mean


A = [1 11 22 33; 44 13 12 33; 1 14 33 44];
B = A; % copy to leave A unaltered
B( B <= prctile(B,25,1) ) = NaN; % Turn values to NaN which we want to exclude
C = mean( B, 1, 'omitnan' ); % Omit the NaN values from the caculation
% C >>
% [ 15.33 13.50 27.50 36.67 ]






By clicking "Post Your Answer", you acknowledge that you have read our updated terms of service, privacy policy and cookie policy, and that your continued use of the website is subject to these policies.

RRBAhAf 4fEdRkI7s,Kf0tTYN,dRX,HVdwHffYXHnSQ aUBnE3Sp3J3t2f,sdjWsT
rYTvq7vwM6SE69eXz5zW3BvSSHFyZaW4iiHL

Popular posts from this blog

PHP contact form sending but not receiving emails

Do graphics cards have individual ID by which single devices can be distinguished?

Create weekly swift ios local notifications