Why doesn't my code return the correct value when I try to find the average of the values greater than 0?
1 回表示 (過去 30 日間)
古いコメントを表示
Hi,
I'm trying to find the average of the values that are greater than 0 and the average of values less than 0. I wrote the following code:
sample = xlsread('sample.xlsx', 1); %Download spreadsheet to MATLAB
avgGreaterThan0 = mean(sample(:)>0); %finds the average of values > 0
avgLessThan0= mean(sample(:)<0); %finds the average of values < 0
The outputs are, 0.232876712328767 (avg. when values > 0) and 0.767123287671233 (avg. when values < 0). However I preformed the task manually to find it should be 0.132517148 (avg. when values > 0) and -0.043091451 (avg. when values < 0.)
Could you please help me with my code?
Best, A
0 件のコメント
採用された回答
Jan
2017 年 3 月 8 日
sample(:)>0 replies a logical array. Then mean(sample(:)>0) calculates the average number of the elements greater than 0, not the average of the values itself. For this use:
avgGreaterThan0 = mean(sample(sample(:) > 0));
avgLessThan0 = mean(sample(sample(:) < 0));
3 件のコメント
Image Analyst
2017 年 3 月 8 日
Then you didn't use Jan's code. Here's proof Jan's code works:
sample = randi(100, 1, 1000) - 50
avgGreaterThan0 = mean(sample(sample(:) > 0))
avgLessThan0 = mean(sample(sample(:) < 0))
See results:
avgGreaterThan0 =
25.729
avgLessThan0 =
-24.485
その他の回答 (0 件)
参考
カテゴリ
Help Center および File Exchange で Web Services についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!