此代码
combinations = dec2base(0:power(2,N*M)-1,2) - '0'
为大小为N * M的矩阵生成零和1的所有可能组合,并将所有这些组合存储在称为组合的矩阵中。我需要知道它是如何工作的,因为我不了解这段代码。谢谢
答案 0 :(得分:3)
以M = 2
,N = 3
为例。然后power(2,N*M)-1
为63
,0:power(2,N*M)-1
为向量[0 1 2 ... 63]
。
dec2base(..., 2)
将这些64
个数字转换为基数2
,使用字符'0'
和'1'
作为“数字”。如果需要,每个结果都在一行中,左边用'0'
填充。因此它提供了64
×6
字符矩阵
000000
000001
000010
....
111110
111111
要将这些字符转换为数字,请减去'0'
。这为0
提供了'0'
,为1
提供了'1'
,利用了字符'0'
和'1'
的ASCII代码是连续的。所以最终的结果是数字矩阵
0 0 0 0 0 0
0 0 0 0 0 1
0 0 0 0 1 0
....
1 1 1 1 1 0
1 1 1 1 1 1