У меня большой 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) ;
}
Я чувствую, что должен быть более аккуратный и эффективный способ достижения этого? Любая помощь высоко ценится.