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?

 Akzeptierte Antwort

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

Weitere Antworten (2)

a = [1,2,3,4,5,6,7] ;
idx = knnsearch(a',mean(a)) ;
a(idx)
ans = 4
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

Produkte

Version

R2021a

Tags

Gefragt:

am 15 Apr. 2022

Beantwortet:

am 15 Apr. 2022

Community Treasure Hunt

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

Start Hunting!

Translated by