Eigen库行列赋值操作的Bug
Eigen版本:eigen3.3.4
没有见过这么奇怪的Bug......
进行行列赋值操作时,Eigen会自动转置进行维度匹配,但是,有一种情况会报错。
//直接使用行和列对矩阵的行或者列进行赋值;
Eigen::MatrixXf square1= Eigen::MatrixXf::Constant(30,30,1);
Eigen::MatrixXf square2 = Eigen::MatrixXf::Constant(30, 30, 2);
square1.row(0) = square2.row(0);
//非同一个矩阵,Yes square1.row(0) = square1.row(0);
//无需转置,Yes
square1.row(0) = square1.col(0);
//同一个矩阵,且需要转置,No
解决方案是,建立一个VectorXf的临时变量
Eigen::VectorXf tmp = square1.col(0);
square1.row(0) = tmp;
【Eigen库行列赋值操作的Bug】
推荐阅读
- Docker应用:容器间通信与Mariadb数据库主从复制
- 太平之莲
- thinkphp|thinkphp 3.2 如何调用第三方类库
- 我正在参加安特思库共读一本书干法。
- Python爬虫|Python爬虫 --- 1.4 正则表达式(re库)
- 现役联盟前十怎么排(詹姆斯榜首无悬念!杜兰特库里位置不确定!)
- Android7.0|Android7.0 第三方应用无法访问私有库
- 数据库设计与优化
- 数据库总结语句
- py连接mysql