Собственное эффективное парное вычитание столбца - PullRequest
0 голосов
/ 17 января 2019

У меня большой 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) ;
}

Я чувствую, что должен быть более аккуратный и эффективный способ достижения этого? Любая помощь высоко ценится.

...