How to label all the edges in a graph the euclidean distance between two adjacent nodes???
1 visualizzazione (ultimi 30 giorni)
Mostra commenti meno recenti
Mohammad Bhat
il 17 Mar 2019
Commentato: Mohammad Bhat
il 18 Mar 2019
Hi,
I have to weight each edge in below attached undirected graph with euclidean distance between two adjacent nodes. How we can do that???
0 Commenti
Risposta accettata
Akira Agata
il 18 Mar 2019
I think one possible solution would be like this:
% Make Graph object
rng('default');
s = [1 1 3];
t = [2 3 4];
G = graph(s,t);
% Calculate pair-wise Euclidian distance between every node
X = 10*rand(4,1);
Y = 10*rand(4,1);
d = pdist([X,Y]);
d = squareform(d);
% Label Euclidian distance for each edge
G.Edges.Wieght =...
arrayfun(@(j,k) d(j,k),G.Edges.EndNodes(:,1),G.Edges.EndNodes(:,2));
% Visualize the Graph
plot(G,'XData',X,'YData',Y,'EdgeLabel',G.Edges.Wieght)
Più risposte (0)
Vedere anche
Categorie
Scopri di più su Graph and Network Algorithms in Help Center e File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!