c – 如何在Eigen中初始化大型矩阵的内容?

前端之家收集整理的这篇文章主要介绍了c – 如何在Eigen中初始化大型矩阵的内容?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在尝试初始化一个矩阵(使用Eigen库)在创建时具有非零值.有没有一个很好的方式做这个没有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,1.0);

mat.block(i,l) = Eigen::MatrixXd::Constant(i,1.0);

猜你在找的C&C++相关文章