如何在MATLAB中从总共N个中获得K项的所有可能组合

时间:2011-04-19 07:58:42

标签: matlab

例如,如果[1,2,3,4,5,6]是一个向量,那么一次只有3个项目的所有可能组合

 4     5     6
 3     5     6
 3     4     6
 3     4     5
 2     5     6
 2     4     6
 2     4     5
 2     3     6
 2     3     5
 2     3     4
 1     5     6
 1     4     6
 1     4     5
 1     3     6
 1     3     5
 1     3     4
 1     2     6
 1     2     5
 1     2     4
 1     2     3

如何在MATLAB中找到它?

3 个答案:

答案 0 :(得分:4)

试试这个link。基本上你只需要输入c = combnk(1:6,3)。希望它有所帮助。

编辑:我提议的内容与@nash的combntns之间的差异是命令所在的工具箱。combnk位于统计工具箱中,而combntns位于映射工具箱。

答案 1 :(得分:3)

>> combos = combntns([1 2 3 4 5 6], 3)

输出:

 1     2     3
 1     2     4
 1     2     5
 1     2     6
 1     3     4
 1     3     5
 1     3     6
 1     4     5
 1     4     6
 1     5     6
 2     3     4
 2     3     5
 2     3     6
 2     4     5
 2     4     6
 2     5     6
 3     4     5
 3     4     6
 3     5     6
 4     5     6

答案 2 :(得分:3)

我用:

allCombos = nchoosek([1:n],k);

我更喜欢这个,因为nchoosek附带了Matlab,不需要工具箱。