Specifying node numbers using digraph

4 visualizaciones (últimos 30 días)
Conrado Neto
Conrado Neto el 20 de En. de 2021
Comentada: Conrado Neto el 21 de En. de 2021
I need to plot something that has nodes Numbers and Coordinates as in the attached file: Data_Coord.txt
the file has four columns and they correspond to: NodeNumber CoordX CoordY CoordZ, respectively
The conectivity between nodes is given by the file Data_Conec.txt
the file has three columns and they correspond to: ElementNumber Node1 Node2, respectively
Note that the number of the nodes is not sequential up to the total number of nodes, meaning that, for example, I could have node 1 conected to node 10001, even though I only have 200 nodes. but the coordinate of node 1 and 10001 is given on the Data_Coord.txt file and the first column specifies the number of the node.
How can I plot this 3D sketch?
I tried using digraph but because of the node numbers I wasnt sure how to proceed
thanks,

Respuesta aceptada

Christine Tobler
Christine Tobler el 20 de En. de 2021
The easiest way to use graph/digraph when your node numbers are not sequential is to convert the node numbers to string, which will have them treated as node names instead. Then, you should be able to use digraph and hte plot command with 'XData', 'YData', and 'ZData' options.
  3 comentarios
Christine Tobler
Christine Tobler el 20 de En. de 2021
Editada: Christine Tobler el 20 de En. de 2021
Hi Conrado,
If E1, E2 are the second and third column of Data_Conec.txt, and Node_Coord is the first column of Data_Coord.txt, use
G = digraph(string(E1), string(E2), [], string(Node_Coord));
plot(G,'XData',X_Coord,'YData',Y_Coord,'ZData',Z_Coord,...
'ArrowSize',10,'NodeLabel',G.Nodes.Name);
Conrado Neto
Conrado Neto el 21 de En. de 2021
this works perfectly, thanks Christine!

Iniciar sesión para comentar.

Más respuestas (0)

Categorías

Más información sobre Networks en Help Center y File Exchange.

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by