MATLAB Answers

Find the list of edges between 2 nodes

3 views (last 30 days)
Deepa Maheshvare
Deepa Maheshvare on 13 Nov 2019
Edited: Akira Agata on 14 Nov 2019
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.

Answers (1)

Akira Agata
Akira Agata on 14 Nov 2019
Edited: Akira Agata on 14 Nov 2019
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.

Tags

Products


Release

R2019b

Translated by