Make all point connected to other points.
Show older comments
Hi, i want to make all point has a connection to other with the following code.
x = [6 3 5 4 7 8];
idx = randperm(length(x));
y = x(idx);
start = x(:,2);
last = x(:,(length(x)));
w=randi(100, size(x));
G = digraph(x,y,w);
G = rmedge(G, 1:numnodes(G), 1:numnodes(G));
plot(G,'EdgeLabel',G.Edges.Weight) ;
path = shortestpath(G, start, last);
disp(['spf = ' num2str(path)]);
The result:

Is that possible to all point include no1 & 2 connect to each other?
Thanks.
6 Comments
Walter Roberson
on 12 Oct 2018
What should 1 and 2 connect to? You do not have them in your node list, x, and you have not added an edge for them.
Asyran Abdullah
on 13 Oct 2018
Walter Roberson
on 13 Oct 2018
What should they be connected to and with what weight?
In the test I just ran, 1, 2, and 8 all showed up isolated. I guess 8 happened to get mapped to 8 by chance, and then when you removed the edges from nodes to themselves, it ended up isolated.
Asyran Abdullah
on 13 Oct 2018
Edited: Asyran Abdullah
on 13 Oct 2018
Asyran Abdullah
on 14 Oct 2018
Walter Roberson
on 14 Oct 2018
You mean like
x = min(x) : max(x)
Or should it be assumed that 1 will always be included?
If some of the values have been excluded, how do we know that the maximum has been included?
If it were a matter of figuring out which vertices did not have any edges incident to them, then that would not be difficult... though it does still assume that the maximum is present.
Answers (0)
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!