Существует ли какой-либо возможный способ создания представления для матрицы Eigen::MatrixXd
в которой индексы переставляются? Например, если представление называется matView, а исходная матрица имеет имя mat, тогда matView(i,j)
должен фактически ссылаться на mat(f(i),f(j))
, где f(index)
- некоторая функция который отображает индекс в другой. Я спрашиваю об этом, потому что я пишу библиотеку квантовых вычислений и хотел бы выполнить перестановку индекса без фактического перемещения элементов матрицы в памяти (так же, как MATLAB). Благодарю!
Вы можете искать операцию транспонирования, предоставляемую Eigen в классе BaseMatrix. Поскольку документация Eigen указывает, что методы транспонирования и сопряжения в классе BaseMatrix возвращают объект, представляющий операцию транспонирования, а не матрицу транспонирования.
С уважением.