最小値LOから最大値HIの値を一様にとる連続分布で,N×Nの行列を作る方法.
#include <Eigen/Dense> #include <iostream> #include <cmath> using namespace Eigen; using namespace std; MatrixXd random_uniform_mtx(int N, double LO, double HI){ double range = HI - LO ; MatrixXd P = MatrixXd::Random(N, N); P = (P + MatrixXd::Constant(N, N, HI))*range/2; P = (P + MatrixXd::Constant(N, N, LO)); return P; }
Stack Overflow で見かけたコードだった気がするが,ぐぐっても見当たらなくなっていた...