2017-02-02 14 views
0

у меня есть матрицакак найти расстояние между последовательными точками

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]; 

В первом столбце А обозначает широту, второй столбец указывает долготы, причем каждая строка быть другая точка. Я хочу найти расстояние между последовательными точками. Я использовал функцию pdist таким образом

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

но это дает расстояние между всеми точками и не только между соседними точками.

Помогите решить проблему?

Благодаря

ответ

4

Как указано в помощи pdist вы можете использовать squareform для организации данных.

b = squareform(a); 

Расстояние между соседними точками является поддиагоналями этой матрицы.

dist = diag(b,1) 

Вы также можете легко вычислить расстояния вручную

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

+1: Вы можете использовать 'diff' на обеих колонках и имеют более короткое выражение:' Dist = SQRT (сумма (разность (А) .^2,2)) ' –

 Смежные вопросы

  • Нет связанных вопросов^_^