How to cluster lines ?

9 vues (au cours des 30 derniers jours)
Sim
Sim le 5 Juil 2022
Modifié(e) : Sim le 6 Juil 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') ;

Réponse acceptée

Image Analyst
Image Analyst le 5 Juil 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 commentaires
Image Analyst
Image Analyst le 5 Juil 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 le 6 Juil 2022
hope this drawing clarifies a bit...

Connectez-vous pour commenter.

Plus de réponses (0)

Community Treasure Hunt

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

Start Hunting!

Translated by