# Constructing N-dimensional vectors out of point distances

I was wondering if anyone had any insight or information on how one might go about determining point coordinates in an n-dimensional space from point pair distances. For example, say I start with a table of pairwise Euclidean distances between points for 10 points $\{a, \ldots, j\}$. This would have a distance for each distinct pair of points, a through j, so 45 separate distances. I want to be able to produce an n-dimensional vector for each point so that the Euclidean distance between each of the points matches the point pair distances from my original table.

Any insight on the subject would be much appreciated.

• You are referring to multidimensional scaling. You are guaranteed to be able to exactly reproduce the distances in the table if you use N-1 dimensions. A question is, how close can you get if you use fewer dimensions. Aug 3, 2016 at 20:17
• Awesome, that's just what I was looking for. Thanks. For reference, there is good information on how to use multidimensional scaling in python here: scikit-learn.org/stable/modules/generated/… Aug 4, 2016 at 20:25
• OK, I'll make it an official answer. Aug 4, 2016 at 20:30

You are referring to multidimensional scaling. Specifically metric MDS will do this. You are guaranteed to be able to exactly reproduce the distances in the table if you use $N-1$ dimensions. A typical MDS question is, how close can you get if you use fewer dimensions? The difference between the returned distances (when using fewer dimensions) and the original distances is called the stress. You may find that your returned distances are 'good enough' with many fewer dimensions, even as low as 2 or 3. When 2, for example, provides a reasonably good representation, that implies that your objects were spread along a flat plane through a high-dimensional space.