Mean based on positive and negative values of a field
3 ビュー (過去 30 日間)
古いコメントを表示
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?
0 件のコメント
採用された回答
Rik
2019 年 8 月 29 日
Logical indexing:
L=[S.f2]>0;
pos_mean=mean([S( L).f1]);
neg_mean=mean([S(~L).f1]);
7 件のコメント
Rik
2019 年 8 月 30 日
As I mentioned, non-scalar structs complicate it a bit.
all_f1=[S.f1];
all_f2=[S.f2];
L=all_f2>0;
pos_mean=mean(all_f1( L));
neg_mean=mean(all_f1(~L));
Note that the concatenation will probably not work if your fields have a different direction than your struct array. So this should work, but a 100X1 struct array with 1Xn fields will not.
その他の回答 (0 件)
参考
カテゴリ
Help Center および File Exchange で Structures についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!