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
Post a Comment