Eigen 矩阵库中的 setRandom 函数用 [-1,1] 范围内的随机数填充给定矩阵。如何扩展它以生成任何给定范围内的数字?我需要浮点数,我可以接受伪随机性。
我尝试过执行以下操作:
B = LO + A.cast<double>().array()/(static_cast <double>(RAND_MAX)/(HI-LO));
这里 A 是有问题的矩阵, [LO,HI] 是我要填充的范围。问题是 RAND_MAX 的值对我来说是 2147483647 ,这弄乱了整个计算。
任何帮助深表感谢。
原文由 pincir 发布,翻译遵循 CC BY-SA 4.0 许可协议
这可能会有所帮助:
输出:
生成的矩阵将包含
LO
和HI
范围内的 double 类型的伪随机元素。