【问题标题】:Matlab: Get all combination of a sequence?Matlab:获取序列的所有组合?
【发布时间】:2012-12-20 08:56:25
【问题描述】:

我有一个序列,如:{1,2,3},我想得到它的所有组合,如: {{},{1},{2},{3},{1,2},{1,3},{2,3},{1,2,3}} 谢谢。

【问题讨论】:

标签: matlab cell sequence combinations


【解决方案1】:

试试这个:http://www.mathworks.com/help/stats/combnk.html。我相信你需要的是梳子,而不是烫发。

【讨论】:

  • 谢谢。我可以将 combnk 放在 for 循环中以获得任意长度的所有组合。
【解决方案2】:

暴力破解:

a  = { 1, 2, 3 };
n  =numel(a);
nn = 2^n;
res = cell(1, nn);
for ii=1:nn,
    res{ii} = a( bitget( ii-1, n:-1:1 ) == 1 );
end

【讨论】:

  • 您应该为此目的使用nchoosek,并迭代不同的k值。
猜你喜欢
  • 1970-01-01
  • 2020-09-23
  • 1970-01-01
  • 2013-06-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多