How created a graph from unordered node list?
2 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
Mohammad Shapouri
el 6 de Abr. de 2020
Comentada: Mohammad Shapouri
el 6 de Abr. de 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 comentarios
Respuesta aceptada
Christine Tobler
el 6 de Abr. de 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 comentarios
Más respuestas (1)
darova
el 6 de Abr. de 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 comentarios
Ver también
Categorías
Más información sobre 2-D and 3-D Plots en Help Center y File Exchange.
Productos
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!