我有一个大的Eigen::MatrixXd
A和一个std::vector<std::pair<int,int>>
c_vec。
c_vec存储了我希望相互减去的两对列。
我想形成一个新的矩阵B,它的列是减去A的每对列的结果。
天真的方法显然是一个简单的循环,就像这样。
Eigen::MatrixXd B = Eigen::MatriXd::Zero(A.rows(), c_vec.size()) ;
int counter = 0 ;
for (const auto&[c1,c2] : c_vec) {
B.col(counter++) = A.col(c2) - A.col(c1) ;
}
我觉得必须有一种更整洁,更有效的方法来实现这一目标?任何帮助表示赞赏。