Matlab分区问题

Big*_*hne 2 algorithm matlab set data-partitioning

我的头脑被困在为我的问题寻找算法.

假设我有N数字(比方说4)我想拥有所有X分区(X = N/2)

例:

{1,2,3,4}的2-分区是:(1,2)(1,3)(1,4)(2,3)(2,4)(3,4)[简称:所有组合]

我不知道如何生成这些组合.如果你有人有一个想法(我不在乎什么语言.伪代码是完全足够的.我不在乎它是迭代还是显式).

最好的问候,Bigbohne

tau*_*ran 5

Matlab有这样的功能:

http://www.mathworks.com/help/techdoc/ref/nchoosek.html

>> x = [1,2,3,4]

x =

1     2     3     4

>> nchoosek(x, 2)

ans =

 1     2
 1     3
 1     4
 2     3
 2     4
 3     4
Run Code Online (Sandbox Code Playgroud)

像maxwellb这样的循环结构在matlab中非常慢......