- You want to obtain node pair matrix from graph object ?
- If the graph has an edge from node m to node n, you need both (n, m) and (n, m) in your matrix?
List of Node pairs
3 vues (au cours des 30 derniers jours)
Afficher commentaires plus anciens
Hari
le 15 Juil 2021
Réponse apportée : Akira Agata
le 16 Juil 2021
How can I get a matrix of node pairs from a graph? That is, if there are 4 nodes 1,2,3,4, then the node pair matrix would be :
1 2
1 3
1 4
2 1
2 3
2 4
3 2 etc.
I could do this using 2 for loops, but is there any quick way of doing it?
2 commentaires
Akira Agata
le 16 Juil 2021
Questions for clarification:
Réponse acceptée
Akira Agata
le 16 Juil 2021
Another possible solution:
numNode = 4;
[r,c] = find(~eye(numNode));
v = [c,r];
>> v
v =
1 2
1 3
1 4
2 1
2 3
2 4
3 1
3 2
3 4
4 1
4 2
4 3
0 commentaires
Plus de réponses (2)
Simon Chan
le 16 Juil 2021
Basically you just want to create the matrix, right?
u=1:4;
u_entend = repelem(u,1,length(u)-1);
w = repmat(u',1,length(u));
v = reshape(tril(w,-1) + triu(w,1),1,[]);
v = v(v~=0);
node_pair = [u_entend;v]'
Result:
node_pair =
1 2
1 3
1 4
2 1
2 3
2 4
3 1
3 2
3 4
4 1
4 2
4 3
0 commentaires
Walter Roberson
le 16 Juil 2021
u=1:4;
[s,t] = ndgrid(u);
v = [s(:),t(:)];
mask = v(:,1) ~= v(:,2);
v = v(mask,:);
v
0 commentaires
Voir également
Catégories
En savoir plus sur Graph and Network Algorithms 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!