function UnusedEdges = UnusedEdgeFinder(EdgeListG, EdgeListT, BdyEdges) % UnusedEdges = UnusedEdgeFinder(EdgeListG, EdgeListT, BdyEdges) %We first form the UnusedEdges to be those edges of G that do not appear %as tree edges, and do not appear as boundary edges. Note that once a %boundary edge has been added, it can be deleted, but will never be added a %second time. UnusedEdges = setdiff(EdgeListG, EdgeListT, 'rows'); UnusedEdges = setdiff(UnusedEdges, BdyEdges, 'rows'); %We also need to delete any edge from UnusedEdges both of whose endpoints %are in the tree (These edges have not yet been accounted for, and will %subsequently never be boundary edges.) [r c] = size(UnusedEdges); CycleEdge = []; %this vector will collect all Unused edges both of whose %endpoints are tree endpoints, and thus would form a cyle in in T EdgeListTEndpts = EdgeListT(:,1:2); for i = 1:r if ismember(UnusedEdges(i,1),EdgeListTEndpts) & ismember(UnusedEdges(i,1),EdgeListTEndpts) CycleEdge = [CycleEdge i]; end end UnusedEdges(CycleEdge,:)=[];