Make all point connected to other points.

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

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.
This is just an example, how to add 1&2 in edges without change x value?
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.
Yes, what i mean is just to make all points connected to each other.
As shown in figure, how can we make all points has an edges to connect to others?
Without changing the x value?
x = [1 8 10 12 15 16 24];
I try to use "UseGravity" and it not function.
For example,
x = [1 3 4 8 9 15];
we add num 2 in x.
x1 = [x, 2];
How to add automatically the missing numbers (2,5,6,7,10,11,12,13,14) into x ?
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.

Sign in to comment.

Answers (0)

Categories

Find more on Graph and Network Algorithms in Help Center and File Exchange

Asked:

on 12 Oct 2018

Commented:

on 14 Oct 2018

Community Treasure Hunt

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

Start Hunting!