How to cluster lines ?

8 Ansichten (letzte 30 Tage)
Sim
Sim am 5 Jul. 2022
Bearbeitet: Sim am 6 Jul. 2022
How to cluster lines ?
Here below an example:
x = [1 1 2 3 4 5 6 7 1 1 2 3 3 4 4 5 15 15 15 16 16 16 17 18 20 20 21
2 5 9 5 4 9 6 7 3 7 3 5 7 6 7 14 14 19 23 22 15 16 17 20 22 21 23
];
y = [2 10 3 20 5 2 4 6 100 106 102 93 90 100 81 77 66 59 74 60 62 35 48 69 30 58 55
6 8 3 11 8 2 10 21 66 108 75 92 90 100 82 72 67 55 75 60 68 55 53 70 32 37 32
];
plot(x,y,'LineWidth',2,'color','k') ;

Akzeptierte Antwort

Image Analyst
Image Analyst am 5 Jul. 2022
I'd pass in both endpoints of each line to kmeans and let it figure it out. Demo attached.
If you have a situation where one endpoint is in one cluster and the other is in a different cluster you might decide to assign both end points to whatever cluster is nearer one of the endpoints.
  4 Kommentare
Image Analyst
Image Analyst am 5 Jul. 2022
If I just plot x and y
x = [1 1 2 3 4 5 6 7 1 1 2 3 3 4 4 5 15 15 15 16 16 16 17 18 20 20 21
2 5 9 5 4 9 6 7 3 7 3 5 7 6 7 14 14 19 23 22 15 16 17 20 22 21 23
];
y = [2 10 3 20 5 2 4 6 100 106 102 93 90 100 81 77 66 59 74 60 62 35 48 69 30 58 55
6 8 3 11 8 2 10 21 66 108 75 92 90 100 82 72 67 55 75 60 68 55 53 70 32 37 32
];
% Plot endpoints
plot(x, y, '.', 'MarkerSize', 30)
How do I know which (x,y) pair corresponds to the two end points of a single line?
Sim
Sim am 6 Jul. 2022
hope this drawing clarifies a bit...

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (0)

Community Treasure Hunt

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

Start Hunting!

Translated by