【发布时间】:2014-12-25 22:35:16
【问题描述】:
如何在Matlab中生成N个对象的K个实例的所有可能组合?
例如,如果我们有 N=3 个对象 A、B 和 C,并希望生成 K=2 个实例的组合,我们应该得到
AA
AB
AC
BA
BB
BC
CA
CB
CC
即这就是数字中数字的组合方式。
【问题讨论】:
标签: matlab combinatorics
如何在Matlab中生成N个对象的K个实例的所有可能组合?
例如,如果我们有 N=3 个对象 A、B 和 C,并希望生成 K=2 个实例的组合,我们应该得到
AA
AB
AC
BA
BB
BC
CA
CB
CC
即这就是数字中数字的组合方式。
【问题讨论】:
标签: matlab combinatorics
你可以使用fullfact:
fullfact([3 3])
这将产生第一行中的 3 个元素和第二行中的 3 个元素的所有组合,结果为:
1 1
2 1
3 1
1 2
2 2
3 2
1 3
2 3
3 3
【讨论】:
s='A':'C';K=2;s(fullfact(repmat(numel(s),k,1)))
使用来自 matlab 文件交换的allcomb:
allcomb(['A','B','C'],['A','B','C'])
更通用的方法:
s='A':'D'
k=3
e=repmat({s},1,k)
allcomb(e{:})
【讨论】: