我必须创建大小为3x5的所有可能的二进制矩阵。我知道有2^15个这样的矩阵。然而,我不知道MatLab中的哪个函数/命令可以做到这一点。我上网查过了,也找不到答案。我尝试创建长度为15的所有可能的二进制向量,然后将每个二进制向量转换为3x5矩阵。然而,这一过程非常耗时。因此,我正在寻找一个可以直接创建大小为3x5的所有可能的二进制矩阵的MatLab命令。
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,[])
1条答案
按热度按时间fhg3lkii1#
为此,您可以使用dec2bin()函数,但稍微重新排列一下:
得到的3x5矩阵将是前两个维度。例如,b(:,:,1)、b(:,:,2)等。
上面生成了一个双精度数组。如果您需要逻辑数组,则