MATLAB Answers

0

Find the list of edges between 2 nodes

Asked by Deepa Maheshvare on 13 Nov 2019 at 9:10
Latest activity Edited by Akira Agata
on 14 Nov 2019 at 3:30
I've the following graph with multiple edges.
tail = [1 2 2 4 5 3]
head = [2 4 5 3 3 6]
I would like to know how to find the list of edges between nodes 2 and 3.
Expected output = [2 4 3]
[2 5 3]
I tried using shortestpath for simple graphs. But for multigraph it gives one path. I'd like to know how to
obtain both paths.

  0 Comments

Sign in to comment.

Tags

Products


Release

R2019b

1 Answer

Answer by Akira Agata
on 14 Nov 2019 at 3:29
Edited by Akira Agata
on 14 Nov 2019 at 3:30

How about the following?
tail = [1 2 2 4 5 3];
head = [2 4 5 3 3 6];
% Create graph object
G = graph(head,tail);
% Find a shortest path between 2 and 3
path = shortestpath(G,2,3); % <- this returns your expected output : [2 4 3]
% Visualize the result
figure
h = plot(G);
highlight(h,path,'EdgeColor','r','LineWidth',2)

  0 Comments

Sign in to comment.