Matlab:具有0和1的所有组合的矩阵,每行至少k 1

时间:2016-11-13 13:19:28

标签: matlab matrix combinations combinatorics

所以我选择行长度,比如n,每行只包含0和1,并且至少有k 1。我想在Matlab中有一个包含所有可能组合的矩阵。

例如,n = 3 k = 2:

1 1 0

1 0 1

0 1 1

1 1 1

1 个答案:

答案 0 :(得分:3)

您可以使用dec2bin创建所有位模式,然后仅保留具有正确数量1 s的模式:

n = 3; k = 2;
allCombs = dec2bin( (2^k-1):(2^n-1) ) - '0'; % use -'0' to convert to integers
outCombs = allCombs(sum(allCombs, 2) >= k, :);

outCombs =

   0   1   1
   1   0   1
   1   1   0
   1   1   1