MATLAB: Mean based on positive and negative values of a field

mean and standard deviation

I have a structure S (10000 X 1) with 10 fields. I want to calculate (two) means and standard deviations of one particluar field f1. I have condition on field f2.
mean_1 and SD_1: consider the values of f1 (in calculation of mean and SD) if, f2 is positive.
mean_2 and SD_2: consider the values of f1 (in calculation of mean and SD) if, f2 is negative.
Any smart way to do this?

Best Answer

Logical indexing:
L=[S.f2]>0;
pos_mean=mean([S( L).f1]);
neg_mean=mean([S(~L).f1]);