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

3 ビュー (過去 30 日間)
Tawsif Mostafiz
Tawsif Mostafiz 2022 年 4 月 15 日
回答済み: KSSV 2022 年 4 月 15 日
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?

採用された回答

KSSV
KSSV 2022 年 4 月 15 日
a = [1,2,3,4,5,6,7] ;
[val,idx] = min(abs(a-mean(a)));
a(idx)
ans = 4

その他の回答 (2 件)

KSSV
KSSV 2022 年 4 月 15 日
a = [1,2,3,4,5,6,7] ;
idx = knnsearch(a',mean(a)) ;
a(idx)
ans = 4

Arif Hoq
Arif Hoq 2022 年 4 月 15 日
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

カテゴリ

Help Center および File ExchangeLoops and Conditional Statements についてさらに検索

タグ

製品


リリース

R2021a

Community Treasure Hunt

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

Start Hunting!

Translated by