How to cluster a network?
4 vues (au cours des 30 derniers jours)
Afficher commentaires plus anciens
Hello guys,
If I have a network ( Lets call it x) and it is described by the following edges:
x=[1 2 3 4 5 6]; %vertices in the network
Edg =[1 2; 1 3 ; 2 3 ; 3 4 ; 4 5;6 3; 5 6]; %edges
A=graph(Edg(:,1),Edg(:,2));
plot(A)
The graph A looks like this :
If x is devided into two areas (we know the nodes in each area):
x1=[1 2 3];
x2=[3 4 5 6]; %the common vertex is 3
%edges is the same
Now i want to plot each area, so the graph above will be splitted into two graphs and vertix 3 is in both graphs.
To do this i need to write a code which gives the edges in each area, like this:
Edges for x1 [ 1 2; 2 3; 1 3]. Edges for x2 [ 3 6; 3 4; 4 5 ; 5 6].
0 commentaires
Réponses (1)
Akira Agata
le 14 Juil 2019
The following is an example:
% Sample Graph
s = [1 1 2 2 3 4 4 5 6 6 7 7 8];
t = [2 3 3 4 4 5 7 6 7 10 8 9 9];
G = graph(s,t);
% Visualize G
figure
plot(G);
% Apply biconncomp function
bincell = biconncomp(G, 'OutputForm', 'cell');
n = length(bincell);
% Visualize the separated graphs
figure
for ii = 1:n
subplot(2,2,ii)
plot(subgraph(G, bincell{ii}), 'NodeLabel', bincell{ii});
end
Original Graph:
Separated graphs:
1 commentaire
abdullah nasser abdullah
le 17 Juil 2019
Modifié(e) : abdullah nasser abdullah
le 17 Juil 2019
Voir également
Catégories
En savoir plus sur Directed Graphs dans Help Center et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!