0
votes

I have a matrix

A=[51.7365160000000 10.7978860000000;
   51.7366230000000 10.8319610000000;
   51.7389880000000 10.7849260000000;
   51.7424430000000 10.9195510000000;
   51.7443820000000 10.9157750000000;
   51.7448080000000 10.9160750000000;
   51.7523270000000 10.8756060000000;
   51.7525920000000 10.8758210000000;
   51.7526190000000 10.8738470000000;
   51.7526460000000 10.8763360000000;
   51.7528580000000 10.8477970000000;
   51.7530180000000 10.8776230000000];

The first column of A indicates latitude, the second column indicates longitude, with each row being a different point. I want to find the distance between consecutive points. I have used the function pdist in this way

a = pdist(A,'euclidean')';

but it gives the distance between all points and not only between consecutive points.

Can you help me to solve the problem?

Thanks

1

1 Answers

4
votes

As pointed out in the help of pdist you can use squareform to organize the data.

b = squareform(a);

The distances between neighbouring points are then the subdiagonals of this matrix.

dist = diag(b,1) 

You can also easily calculate the distances manually

dist = sqrt(diff(A(:,1)).^2+diff(A(:,2)).^2)