实现这一目标的最简单,最快捷的方法是:
Eigen::MatrixXd A1(3,3), B(3,1), A2;
...
A2 = A1;
A2.diagonal() -= B;
Run Code Online (Sandbox Code Playgroud)
当然,最好使用VectorXdvector 的类型(这里是B),最后如果B是常量,那么你可以使用数组工具:
A2.diagonal().array() -= 1;
Run Code Online (Sandbox Code Playgroud)