Quantify Similarity Between Curve Shapes

30 views (last 30 days)
Koustubh Gohad
Koustubh Gohad on 3 Aug 2016
Answered: MahdiH on 12 May 2022
I have several plots of some data that I collect everyday. I need some method to quantify the similarity between their shapes only without considering the Y-axis values. I can see from the figures below that the difference between the first and the last points is around 2.8 for both. X-axis values are the same for both curves. This is one set of curves:
If I calculate 2-D correlation (corr2) for these two vectors, I get a value of around 0.97. Is corr2 an accurate measure of similarity?
Any help would be greatly appreciated!

Answers (2)

Eduardo Esteban Ibáñez
Eduardo Esteban Ibáñez on 9 Feb 2022
I have the same trouble. In my opinion, I think that cross correlation isn't the best method to calculate similarity in two random vectors, because it works better with signals comparisons with possitive and negative amplitudes. Did you find solution for your problem ?
Best regards

MahdiH on 12 May 2022
I suggest using Procrustes analysis. let's say the top curve is "a" and the bottom one is "b", then:
[d,Z,tr] = procrustes(a,b);
Where d is the dis-similarity between a and b.

Community Treasure Hunt

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

Start Hunting!