matlab - how to generate possible distinct sets of pairs from a given set? -


in matlab how do this? have set of n elements

from set make new set of n/2 pairs such elements in different pairs distinct. how generate distinct sets of such n/2 pairs n elements in matlab?

e.g. input set - {1,2,3,4}

possible output sets -

{{1,2},{3,4}}

{{1,3},{2,4}}

{{1,4},{2,3}}

i not find clean solution "distinct elements each halved-vector" requirement. suggest check each result individually. expect there's better solution around: 1 job.

x = [1 2 3 3]; xsize = size(x,2);  p = perms(x); = unique(p,'rows');  result = [];  entry=up'   left = entry(1:xsize/2);   right = entry(xsize/2+1:xsize);   if numel(unique(left)) == xsize/2 && numel(unique(right)) == xsize/2     result = vertcat(result,entry')   end end 

just completeness, result is:

1   3   2   3 1   3   3   2 2   3   1   3 2   3   3   1 3   1   2   3 3   1   3   2 3   2   1   3 3   2   3   1 

i not sure if needed split halved vectors. in case, put left , right whatever prefer.


Comments

Popular posts from this blog

django - How can I change user group without delete record -

java - Need to add SOAP security token -

java - EclipseLink JPA Object is not a known entity type -