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

如何在Matlab中生成N个对象的K个实例的所有可能组合?,matlab,combinatorics,Matlab,Combinatorics,如何在Matlab中生成N个对象的K个实例的所有可能组合 例如,如果我们有N=3个对象A、B和C,并且希望生成K=2个实例的组合,那么我们应该得到 AA AB AC BA BB BC CA CB CC 也就是说,这是数字中的数字组合的方式。使用matlab文件交换中的allcomb: allcomb(['A','B','C'],['A','B','C']) 一种更普遍的方法: s='A':'D' k=3 e=repmat({s},1,k) allcomb(e{:}) 使用matlab文件

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

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

AA
AB
AC
BA
BB
BC
CA
CB
CC

也就是说,这是数字中的数字组合的方式。

使用matlab文件交换中的
allcomb

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

一种更普遍的方法:

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

使用matlab文件交换中的
allcomb

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

一种更普遍的方法:

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

您可以使用
fullfact

fullfact([3 3])
这将生成第一行中3个元素和第二行中3个元素的所有组合,结果是:

 1     1
 2     1
 3     1
 1     2
 2     2
 3     2
 1     3
 2     3
 3     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

要获取字符,请使用
s='A':'C';K=2;s(fullfact(repmat(numel(s),k,1))
使用
s='A':'C'获取字符;K=2;s(fullfact(repmat(numel(s),k,1)))