How to find the closest value to the average in an array?

I get a different one dimentional array for different inputs. Now, I want to take the average value of the array, and find the value that is closest to it.
For example if the array output is like this:
a = [1,2,3,4,5,6,7]
Then average will be 4.14, which is closest to 4.
So, the answer should be 4.
How can I do it?

 Accepted Answer

a = [1,2,3,4,5,6,7] ;
[val,idx] = min(abs(a-mean(a)));
a(idx)
ans = 4

More Answers (2)

Then average will be 4.14, which is closest to 4.
actually average is 4. you can try this:
a=[1,2,3,4,6,6];
average=mean(a)
average = 3.6667
[~,~,idx]=unique(round(abs(a-average)));
nearest_value=a(idx==1)
nearest_value = 4

Products

Release

R2021a

Tags

Asked:

on 15 Apr 2022

Answered:

on 15 Apr 2022

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!