- 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 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
Hari
am 15 Jul. 2021
Beantwortet: Akira Agata
am 16 Jul. 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 Kommentare
Akira Agata
am 16 Jul. 2021
Questions for clarification:
Akzeptierte Antwort
Akira Agata
am 16 Jul. 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 Kommentare
Weitere Antworten (2)
Simon Chan
am 16 Jul. 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 Kommentare
Walter Roberson
am 16 Jul. 2021
u=1:4;
[s,t] = ndgrid(u);
v = [s(:),t(:)];
mask = v(:,1) ~= v(:,2);
v = v(mask,:);
v
0 Kommentare
Siehe auch
Kategorien
Mehr zu Graph and Network Algorithms finden Sie in Help Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!