我正在处理较大的二进制矩阵,目前最大为 100x100。
假设我正在使用 30x30 二进制矩阵。那么一共有2^(30x30)个二元矩阵。我想随机选择一个二进制矩阵,其中每个 2^(30x30) 矩阵都有相同的被选中概率。
我的解决方案尝试是使用函数 randi(n) 和 n = 2^(30x30) 选择 1 到 2^(30x30) 之间的数字,然后将结果转换为适当的二进制矩阵。我遇到的问题是 randi(n) 不接受大于 2^54 的 n 值。一般来说,Matlab 似乎不喜欢非常大的数字。
有什么建议吗?
最佳答案
如果每个 bool 矩阵都有相等的概率,那么矩阵的每个元素都有相等的概率为 0 和 1。您可以用 n² 均匀随机 bool 值填充适当大小的矩阵.
我手边没有 MATLAB,但在 Octave 中你会做类似 unidrnd(2, n, n) - 1
的事情。
关于matlab - 随机选择一个二进制矩阵 - Matlab,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8152787/