How created a graph from unordered node list?
5 vues (au cours des 30 derniers jours)
Afficher commentaires plus anciens
Mohammad Shapouri
le 6 Avr 2020
Commenté : Mohammad Shapouri
le 6 Avr 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 commentaires
Réponse acceptée
Christine Tobler
le 6 Avr 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 commentaires
Plus de réponses (1)
darova
le 6 Avr 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 commentaires
Voir également
Catégories
En savoir plus sur 2-D and 3-D Plots dans Help Center et File Exchange
Produits
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!