matlab

时间:2017-04-27 22:01:39

标签: matlab matrix

此代码

 combinations = dec2base(0:power(2,N*M)-1,2) - '0'

为大小为N * M的矩阵生成零和1的所有可能组合,并将所有这些组合存储在称为组合的矩阵中。我需要知道它是如何工作的,因为我不了解这段代码。谢谢

1 个答案:

答案 0 :(得分:3)

M = 2N = 3为例。然后power(2,N*M)-1630: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