Daphne, I assume you solved your earlier issue. Here is how I did it.

X=cell2mat(p.ashape);
% p.ashape contains the indices of 2 nodes for each edge; turn it into a single vector (which will have repeats).
ind=reshape(X,[],1);
indu=unique(ind,'rows'); %cancel doubles.

Now any hints for putting these in order going around the shape? I don't want to use line as in the example. I would like to manipulate the boundary to fit it to other data distributed on the boundary.