如何在Matlab中生成N个对象的K个实例的所有可能组合?

时间:2014-12-25 22:35:16

标签: matlab combinatorics

如何在Matlab中生成N个对象的K个实例的所有可能组合?

例如,如果我们有N = 3个对象A,B和C,并希望生成K = 2个实例的组合,我们应该得到

AA
AB
AC
BA
BB
BC
CA
CB
CC

即。这就是数字中数字组合的方式。

2 个答案:

答案 0 :(得分:3)

您可以使用fullfact

fullfact([3 3])

这将产生第一行中3个元素和第二行中3个元素的所有组合,结果为:

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

答案 1 :(得分:1)

使用matlab文件交换中的allcomb

allcomb(['A','B','C'],['A','B','C'])

download

更通用的方法:

s='A':'D'
k=3
e=repmat({s},1,k)
allcomb(e{:})