how do i find the distance between points

if i have x=[1,5,11,26,46,56,66,76,81];
and I want to find the distance between all these points. eg
1,5 = 4
5,11= 6
46,56=10
and if distances are the same add it to a counter
eg
46,56,66
distance = 10
counter = 3

2 件のコメント

Rik
Rik 2018 年 4 月 23 日

What have you tried so far? It sounds like you can use diff to calculate the distance, and you might use it again to check for the number of repetitions.

Also, what exactly should your output look like?

Jerry Li
Jerry Li 2018 年 4 月 23 日

so i've tried using diff(x)

x=[1,5,11,26,46,56,66,76,81];
xdist=diff(x)
xdist =
       4     6    15    20    10    10    10     5

but I'm not sure how to add the interverals of distance 10 together

so i want an output something like

counter = 3 % 3 intervals of distance 10
if counter ==3;
function 1 % run fuction 1 as counter is equal to 3

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

回答 (1 件)

Image Analyst
Image Analyst 2018 年 4 月 23 日

0 投票

If you have the Statistics and Machine Learning Toolbox, you can get the distance of any element from any other element using pdist():
x = [1,5,11,26,46,56,66,76,81]';
distances1D = pdist(x);
distances = squareform(distances1D)
You get:
distances =
0 4 10 25 45 55 65 75 80
4 0 6 21 41 51 61 71 76
10 6 0 15 35 45 55 65 70
25 21 15 0 20 30 40 50 55
45 41 35 20 0 10 20 30 35
55 51 45 30 10 0 10 20 25
65 61 55 40 20 10 0 10 15
75 71 65 50 30 20 10 0 5
80 76 70 55 35 25 15 5 0
For example to get the distance of the second element (5) to the fourth element (26) look in the second row, fourth column and you'll see it's 21, which is abs(26-5).

タグ

質問済み:

2018 年 4 月 23 日

回答済み:

2018 年 4 月 23 日

Community Treasure Hunt

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

Start Hunting!

Translated by