我正在尝试初始化矩阵(使用特征库)以使其具有非零值。 是否有一种不错的方法来实现此目的而无需for循环?
例如,如果我想将整个矩阵初始化为1.0,我想做些类似的事情:
Eigen::MatrixXd mat(i,j) = 1.0;
要么
Eigen::MatrixXd mat(i,j);
mat += 1.0;
(我在MATLAB中已经习惯了这种类型的事情,这将使Eigen使用起来比现在更好。我怀疑某个地方有内置方法可以做到这一点,但我还没有发现。)
这个问题的一个子问题是如何将矩阵元素块设置为一个设置值,这有点像:
mat.block(i,j,k,l) = 1.0;
最佳答案
我经常在发布问题后三十秒内在文档中找到答案。我一直在寻找 Constant
function:
Eigen::MatrixXd mat = Eigen::MatrixXd::Constant(i, j, 1.0);
mat.block(i,j,k,l) = Eigen::MatrixXd::Constant(i, j, 1.0);
关于c++ - 如何在Eigen中初始化大矩阵的内容?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/27005322/