如何在Matlab中生成N个对象的K个实例的所有可能组合?
例如,如果我们有N = 3个对象A,B和C,并希望生成K = 2个实例的组合,我们应该得到
AA
AB
AC
BA
BB
BC
CA
CB
CC
即。这就是数字中数字组合的方式。
答案 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'])
更通用的方法:
s='A':'D'
k=3
e=repmat({s},1,k)
allcomb(e{:})