Connected components in a graph

5 vues (au cours des 30 derniers jours)
Asaf McRock
Asaf McRock le 14 Déc 2020
Commenté : Asaf McRock le 15 Déc 2020
M=[1 2;2 5;3 4;4 6;6 7;6 8;6 9;6 10];
G=graph(M(:,1),M(:,2))
[bins,binsizes]=conncomp(G);
When I use the built in function conncomp, MATLAB always assumes that first component of graph G is the one which node 1 belongs to.
The output bins in the given example is:
bins=[1 1 2 2 1 2 2 2 2 2] How can I make the first component of my graph is where node 6 (for example) belongs to?
Your help would be appreciated.
Thanks!

Réponse acceptée

Matt J
Matt J le 14 Déc 2020
Modifié(e) : Matt J le 14 Déc 2020
M=[1 2;2 5;3 4;4 6;6 7;6 8;6 9;6 10];
G=graph(M(:,1),M(:,2));
[bins,binsizes]=conncomp(G);
idx=[2,1];
binsizes=binsizes(idx);
bins=idx(bins)
bins = 1×10
2 2 1 1 2 1 1 1 1 1
  3 commentaires
Matt J
Matt J le 15 Déc 2020
You would just need to change idx to an appropriate permutation of 1:N, e.g.,
idx=[3,1,2,4]
Asaf McRock
Asaf McRock le 15 Déc 2020
Awesome, got it.
Thank you again.

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