加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

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

发布时间:2020-12-16 05:31:16 所属栏目:百科 来源:网络整理
导读:我正在尝试初始化一个矩阵(使用Eigen库)在创建时具有非零值.有没有一个很好的方式做这个没有for循环? 例如,如果我想将整个矩阵初始化为1.0,我想做一些类似于 Eigen::MatrixXd mat(i,j) = 1.0; 要么 Eigen::MatrixXd mat(i,j);mat += 1.0; (我习惯了MATLAB中
我正在尝试初始化一个矩阵(使用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);

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读