matlab 如何创建大小为MXN的所有可能的二进制矩阵?

kuuvgm7e  于 2022-11-15  发布在  Matlab
关注(0)|答案(1)|浏览(207)

我必须创建大小为3x5的所有可能的二进制矩阵。我知道有2^15个这样的矩阵。然而,我不知道MatLab中的哪个函数/命令可以做到这一点。我上网查过了,也找不到答案。
我尝试创建长度为15的所有可能的二进制向量,然后将每个二进制向量转换为3x5矩阵。然而,这一过程非常耗时。因此,我正在寻找一个可以直接创建大小为3x5的所有可能的二进制矩阵的MatLab命令。

fhg3lkii

fhg3lkii1#

为此,您可以使用dec2bin()函数,但稍微重新排列一下:

b = reshape(dec2bin(0:(2^15-1))'-'0',3,5,[])

得到的3x5矩阵将是前两个维度。例如,b(:,:,1)、b(:,:,2)等。
上面生成了一个双精度数组。如果您需要逻辑数组,则

b = reshape(dec2bin(0:(2^15-1))'=='1',3,5,[])

相关问题