How created a graph from unordered node list?
5 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
Mohammad Shapouri
am 6 Apr. 2020
Kommentiert: Mohammad Shapouri
am 6 Apr. 2020
I want to created a graph from an unordered list of nodes. However, Matlab creat graph from ordered node numbers. For example, My node list is as :
source=[1,4,8,7];
Target=[7,8,1,4];
Now this would be the result if I plot the graph from this source and target nodes:
G=graph(source,Target);
P=plot(G);

The results shows the range of nodes from 1 to 8; however, These nodes don't exist in this network. This is problematic since I have a huge road network like this (34000 unordered pairs of source and targets) and each node has and coordiantion. This seroiusly cause problem while I'm trying to plot it with coordiantes. I tried to remove those nodes but it completly changes the graph (I have no Idea why this happening). Thank you in advance for any advice or help.
0 Kommentare
Akzeptierte Antwort
Christine Tobler
am 6 Apr. 2020
When a graph or digraph is specified using numbers, the assumption is that all nodes of this graph have numbers from 1:numberOfNodes. This is not the case when a graph or digraph is constructed from strings, so the simplest workaround is
G = graph(string(source), string(Target));
2 Kommentare
Weitere Antworten (1)
darova
am 6 Apr. 2020
Try this
x = x(:);
y = y(:);
plot([x(source) x(target)],[y(source) y(tagrget)])
or patch function
fv.vertices = [x(:) y(:)];
fv.faces = [source(:) target(:)]];
patch(fv)
5 Kommentare
Siehe auch
Produkte
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!