How to make complete graph from co-ordinates.
Show older comments
x=[0.3 ,5.6 , -8.4,6.4 ] % These are my x-cordinates
y=[4.6, 6.9,3.6,7.89]% These are my y-cordinates
I want to plot complete undirected graph with edge weight in between nodes.
Accepted Answer
More Answers (3)
x=[0.3 ,5.6 , -8.4,6.4 ] % These are my x-cordinates
y=[4.6, 6.9,3.6,7.89]% These are my y-cordinates
nx = length(x);
CG = ones(nx, nx);
CG(1:nx+1:end) = 0;
G = graph(CG)
plot(G, 'XData', x, 'YData', y)
5 Comments
Ashish Verma
on 12 Aug 2021
Edited: Ashish Verma
on 12 Aug 2021
Walter Roberson
on 12 Aug 2021
G.Edges.Weight = (a column vector);
plot(G, 'XData', x, 'YData', y, 'EdgeLabel', G.Edges.Weight)
x=[0.3 ,5.6 , -8.4,6.4 ] % These are my x-cordinates
y=[4.6, 6.9,3.6,7.89]% These are my y-cordinates
nx = length(x);
CG = ones(nx, nx);
CG(1:nx+1:end) = 0;
G = graph(CG);
G.Nodes.Names = {'A', 'B', 'C', 'D'}.';
G.Edges.Weight = round(rand(height(G.Edges),1),2); %use real data here!
plot(G, 'XData', x, 'YData', y, 'EdgeLabel', G.Edges.Weight);
Ashish Verma
on 12 Aug 2021
x =[0.3 ,5.6 , -8.4,6.4 ] % These are my x-cordinates
y =[4.6, 6.9,3.6,7.89]% These are my y-cordinates
dists = squareform(pdist([x(:), y(:)]));
[s, t, w] = find(dists);
G = graph(s, t, round(w,2));
G.Nodes.Names = {'A', 'B', 'C', 'D'}.';
plot(G, 'XData', x, 'YData', y, 'EdgeLabel', G.Edges.Weight, 'NodeLabel', G.Nodes.Names);
Ashish Verma
on 12 Aug 2021
0 votes
Ashish Verma
on 12 Aug 2021
0 votes
Categories
Find more on Graph and Network Algorithms in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!


