【问题标题】:How to generate all possible combinations of K instances of N objects in Matlab? [duplicate]如何在 Matlab 中生成 N 个对象的 K 个实例的所有可能组合? [复制]
【发布时间】: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


    【解决方案1】:

    你可以使用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)))
    【解决方案2】:

    使用来自 matlab 文件交换的allcomb

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

    download

    更通用的方法:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-01-27
      • 2015-08-22
      • 1970-01-01
      • 2012-10-11
      • 2020-07-16
      相关资源
      最近更新 更多