Get distance between adjacent array cells

5 ビュー (過去 30 日間)
Dries van Roovert
Dries van Roovert 2016 年 11 月 14 日
回答済み: Dries van Roovert 2016 年 11 月 16 日
Hello everyone,
I have a little problem calculating a velocity from a distance matrix. I do have the time array already.
My distance matrix looks as following:
dist=[x_coord1, y_coord1;
x_coord2, y_coord2;
....];
The coordinates are absolute, and I need the relative distance between the current coordinates and the previous one.
So, my vector should look like this:
newdist=[pdist2([x_coord2,y_coord2],[x_coord1,y_coord1]);
pdist2([x_coord3,y_coord3],[x_coord2,y_coord2])
......];
But instead pdist2 gives a vector with the distance of every possible combination of cells.
My questions(in my opinion at least):
1. Are there any functions which give me what I want immediately; or if this is not the case
2. Is there a way to decipher the pdist2 vector and get the correct values?
Thanks for reading this long post and helping :)
Kind regards, Dries van Roovert

採用された回答

Dries van Roovert
Dries van Roovert 2016 年 11 月 16 日
For anyone interested in the answer:
PairwiseDist=squareform(pdist(dist,'euclidean'));
RelativeDist=diag(PairwiseDist,-1);
You'll get the distance from coord 2 to 1, coord 3 to 2, ... and so on in a vector.
Cheers

その他の回答 (1 件)

Jan
Jan 2016 年 11 月 14 日
編集済み: Jan 2016 年 11 月 14 日
v = diff(dist, 1, 1);
Perhaps:
v = sqrt(sum(v .* v, 2));
  2 件のコメント
Dries van Roovert
Dries van Roovert 2016 年 11 月 14 日
I need the euclidean distance between the [x1,y1] and [x2,y2]. not just the distance between x1 & x2 and y1 & y2.
Dries van Roovert
Dries van Roovert 2016 年 11 月 15 日
That's not it either, on every row of the solution array should be the distance between the current coordinates and the previous.
%pdist2 is a function calculating distance between data sets
row 1 = pdist2([x2,y2],[x1,y1],'euclidean')
row 2 = pdist2([x3,y3],[x2,y2],'euclidean')

サインインしてコメントする。

カテゴリ

Help Center および File ExchangeLogical についてさらに検索

製品

Community Treasure Hunt

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

Start Hunting!

Translated by