矩阵= Matrix.rowwise()反向()本征横行反转的矩阵再次分配给变量使得每一行对称
简单的问题,但不能图为什么:矩阵= Matrix.rowwise()反向()本征横行反转的矩阵再次分配给变量使得每一行对称
输入
Eigen::MatrixXd Ha(2, 3); Ha << 1, 2, 3, 4, 5, 6;
std::cout << "Ha: " << std::endl << Ha << std::endl;
Ha.rowwise().reverse();
std::cout << "Ha: " << std::endl << Ha.rowwise().reverse() << std::endl;
Ha = Ha.rowwise().reverse();
std::cout << "Ha: " << std::endl << Ha.rowwise().reverse() << std::endl;
输出
Ha: 1 2 3
4 5 6
Ha:
3 2 1
6 5 4
Ha:
3 2 3
6 5 6
对于最后一个,为什么是这样?
回答:
好吧,我终于想通了。 这是因为Eigen使用懒惰评估,我们需要重写元素操作的懒惰评估。
所以此工程:
Ha = Ha.rowwise().reverse().eval();
这在本征的wiki称为 “走样”:
https://eigen.tuxfamily.org/dox/group__TopicAliasing.html
以上是 矩阵= Matrix.rowwise()反向()本征横行反转的矩阵再次分配给变量使得每一行对称 的全部内容, 来源链接: utcz.com/qa/265803.html