How to take an average?
3 views (last 30 days)
Show older comments
I have this array and according to excel histogram plot the mostly values are located in the range [-0.5,0.5]. I want to sort all values from the array A that lies in this range and take there average. How can I do this?
A= [0.0000 0.4341 -0.0000 -0.5910 -0.0352 2.0350 -0.0000 -0.9597 0.0000 -1.2164 -2.7826 -0.0000 0.3716 -0.0000 -0.0000 -0.0000 1.4557 0.0000 -0.0000 0.5599 -0.0000 -0.2463 -0.7001 0.0000]
0 Comments
Accepted Answer
Raghvi
on 17 Mar 2023
Hey Haya,
To find the range in which most values are present, you can use the histcount() function: https://www.mathworks.com/help/matlab/ref/histcounts.html
[n,e] = histcounts(A);
This will partitions the A values into bins(ranges), and returns the count in each bin(n), as well as the bin edges(e).
So the maximum values will be present in the range:
[maxn,i] = max(n);
range = [e(i), e(i+1)];
In this case it will be (0,1)
To find the average of only these values:
x = A >= range(1) & A<= range(2); % or > and < instead of >= and <=
result = mean(A(x));
0 Comments
More Answers (1)
HimeshNayak
on 17 Mar 2023
Hi Haya,
From what I understand, you want to find the average of the range of the elements present in the array. Follow the following steps:
1. Find the range of the element in the array.
[minA, maxA] = bounds(A);
2. Store the range values in an array.
M = [minA, maxA];
3. Find the average / mean of the values.
avg = mean(M);
Regards
HimeshNayak
0 Comments
See Also
Categories
Find more on Logical in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!