This question already has an answer here:

I want to get the difference of all elements of a list for example:

$L=\{1,2,3,4,5,6\}$ for any $i$ and $j$ $\in L$ return the differences, for example for the first element $1$ we get the difference with the rest of elements $\{2,3,4,5,6\}$ we can use the Abs to get the absolute value of the differnce.

I used Differences but this gives the successive differences of elements in list.

Thank you.


marked as duplicate by Jens, Simon Woods, MarcoB, J. M. will be back soon Jun 29 '16 at 23:03

This question has been asked before and already has an answer. If those answers do not fully address your question, please ask a new question.

L = Range[6]
Outer[#1-#2&, L, L]
  • 3
    $\begingroup$ Maybe easier to read: Outer[Subtract,L,L] $\endgroup$ – Jens Jun 29 '16 at 18:20
  • 2
    $\begingroup$ DistanceMatrix[] is better for this. $\endgroup$ – J. M. will be back soon Jun 29 '16 at 19:52
  • $\begingroup$ @J.M. correct and more concise certainly. But better? I'd prefer a design pattern that I can reuse in any number of ways over a relatively obscure function that is only in the latest versions of Mathematica. $\endgroup$ – mikado Jun 29 '16 at 19:57
  • 2
    $\begingroup$ @mikado. Depends on what you want. If DistanceMatrix[] is optimized for this particular calculation, then it's worth using for large lists in certain applications. There's a difference between solving a particular problem and learning general coding practice, and some people don't need the latter. $\endgroup$ – march Jun 29 '16 at 20:08
  • $\begingroup$ @J.M. I hadn't thought of DistanceMatrix - I guess it's too new (only introduced last year)... now that I looked for it it seems that this is a duplicate. $\endgroup$ – Jens Jun 29 '16 at 21:10

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