Mathematica Stack Exchange is a question and answer site for users of Mathematica. It's 100% free, no registration required.

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

I have a list


And I would need to find x such that

Abs[x-Y[[i]]] for all $y_i$ in $Y$ is minimum.

I unfortunatly can't remember my highschool Statistics courses where this function was defined.

share|improve this question
Do you perhaps mean to minimize the sum over the |x-y_i|? – Andrew Jaffe Aug 6 '13 at 7:57
Are you sure you want to ask in Mathematica (the software) forum? Isn't this rather about Maths ( – Pinguin Dirk Aug 6 '13 at 8:01
That was a fast accept. By the way, the value that minimizes the sum of absolute deviations is called the median, and using Mathematica's built-in function for it will probably be a better idea. – Rahul Aug 6 '13 at 8:56
@RahulNarain How do you and Nasser know it is about sum? :) – Kuba Aug 6 '13 at 9:26
@Kuba I feel more confident in my guess now that the asker has accepted Nasser's answer! – Rahul Aug 6 '13 at 9:30
up vote 1 down vote accepted
npts = 10;
y = RandomReal[{0, 1}, npts];
z = x /. FindMinimum[Total[Abs[#] & /@ (x - y)], x][[2]];
ListPlot[{{{1, z}, {npts, z}}, y}, Joined -> True, Mesh -> All]

Mathematica graphics

Appendix Comments above said to use Median for this. But this test shows result of Median and what I have above is not the same. Tried it on different random lists:

npts = 10;
minAbs[y_] := Module[{x}, x /. FindMinimum[Total[Abs[#] & /@ (x - y)], x][[2]]];
z = Table[y = RandomReal[{0, 1}, npts]; {minAbs[y], Median[y]}, {10}];
Map[Abs@Differences[#] &, z]


{{0.0210295415415782}, {0.0034994693789796}, {0.000485836594898592}, \
{0.00186973168510612}, {0.000737313633257242}, {0.00571989492676428}, \
{0.00631402466773001}, {0.0449264216282105}, {0.0881414864517821}, \

So, there is a difference? Did I do something wrong?

share|improve this answer
When there is an even number of values, any value between the middle two is a minimizer; in other words, the median is not unique. Try comparing the value of Total[Abs[... on both your result and the median. Then try the whole thing again with npts = 11. – Rahul Aug 6 '13 at 10:27

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.