I'm having a tough time describing my problem, so I'll present an example instead.

I have a set of Cartesian coordinates

[(1,2) (2,2) (3,3) (4,5) (5,5)]

I also have an array of sets of Cartesian coordinates.

[(4,1) (4,2) (5,3) (6,3) (7,4)]

[(1,1) (2,1) (3,2) (4,4) (5,4)]

[(1,3) (2,3) (3,4) (4,6) (5,8)]

Imagine these are plotted and connect the coordinates together within each set.

So given these data points, I want to find out how well each set of coordinates in the array matches the first set of coordinates with regards to shape of the connected set not exact locations.

The second set of coordinates in the array matches the initial set perfectly, so I'd expect the algorithm to return the value 1. The third set is a close match, the last coordinate is off, so I'd expect the algorithm to return something less than 1 but probably higher than maybe 0.8. The first set in the array is not even close so I'd expect maybe 0 or very close to it.

Are there any known algorithms that do this sort of thing. If not, any suggestions on how I would design such an algorithm?

Also just a note, I do not know a whole lot when it comes to math, I am a software engineer and this is for an application that I am working on. I am also not sure if this question belongs here or somewhere else like stack overflow.

  • $\begingroup$ I don't see how the second set matches the initial perfectly. In the initial, the last two points have the same $y$-coordinate, in the second set, not so. $\endgroup$ – Gerry Myerson Sep 28 '12 at 3:06
  • 1
    $\begingroup$ Thanks for pointing that out. Corrected the typo. $\endgroup$ – Ian Sep 28 '12 at 3:43

Use procrustes analysis. ${}{}{}{}{}{}{}{}$

  • $\begingroup$ Thanks, this seems to be exactly what I'm looking for. $\endgroup$ – Ian Sep 28 '12 at 3:44

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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