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

5 visualizaciones (últimos 30 días)
Tawsif Mostafiz
Tawsif Mostafiz el 15 de Abr. de 2022
Respondida: KSSV el 15 de Abr. de 2022
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?

Respuesta aceptada

KSSV
KSSV el 15 de Abr. de 2022
a = [1,2,3,4,5,6,7] ;
[val,idx] = min(abs(a-mean(a)));
a(idx)
ans = 4

Más respuestas (2)

KSSV
KSSV el 15 de Abr. de 2022
a = [1,2,3,4,5,6,7] ;
idx = knnsearch(a',mean(a)) ;
a(idx)
ans = 4

Arif Hoq
Arif Hoq el 15 de Abr. de 2022
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

Categorías

Más información sobre Loops and Conditional Statements en Help Center y File Exchange.

Etiquetas

Productos


Versión

R2021a

Community Treasure Hunt

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

Start Hunting!

Translated by