Hello...Late answer for this post. Here is what I did, a bit shorter code... Below, the variable "RegionEdgeIndex" (1st line) can be your "edg" list
RegionLeftEdgeIndexSorted= sortrows(RegionEdgeIndex, 1);
RegionLeftEdgeIndexSortedTemp= RegionLeftEdgeIndexSorted;
k=1;
RegionEdgeSorted(k,:)= RegionLeftEdgeIndexSortedTemp(1,:); %initialization
RegionLeftEdgeIndexSortedTemp(1,:)=[];
row=1;
while k<=length(RegionEdgeReferenceList)-1
[row,col] = find(RegionLeftEdgeIndexSortedTemp(:,1)== RegionEdgeSorted(k,2) );
k=k+1 ;
RegionEdgeSorted(k,:)=RegionLeftEdgeIndexSortedTemp(row,:)
RegionLeftEdgeIndexSortedTemp(row,:)=[];
end