Один из вариантов - преобразовать это в ориентированный граф. Вы можете идентифицировать исходный и приемный узлы по тем, которые встречаются только в первом или втором столбце A. Затем вы можете перебрать все возможные пути от каждого источника до каждого приемного узла, используя кратчайший путь.
A=[7 10; 1 7; 3 1; 6 9; 10 7; 2 8; 10 8; 10 4; 8 6];
G = digraph(A(:,1), A(:,2)); % Create graph
source = setdiff(A(:,1), A(:,2)); % Identify source and sink nodes
sink = setdiff(A(:,2), A(:,1));
for i = 1:length(source)
for j = 1:length(sink)
disp(shortestpath(G, source(i), sink(j)));
end
end
выход:
2 8 6 9
3 1 7 10 4
3 1 7 10 8 6 9