Я использую Armadillo C++ линейной алгебры библиотеки, и я пытаюсь выяснить, как преобразовать sp_mat
разреженную матрицу объекта к стандартной mat
плотной матрицей.
Глядя на внутренний код doc, sp_mat
и mat
не имеют общего родительского класса, что заставляет меня полагать, что нет способа бросить sp_mat
в качестве mat
. Кстати, conv_to<mat>::from(sp_mat x)
не работает.
Возможно, есть сложный способ сделать это, используя один из продвинутых конструкторов mat
? Например, каким-то образом создайте матрицу нулей и передайте местоположения и значения ненулевых элементов в sp_mat
.
Кто-нибудь знает об эффективном методе для этого? Заранее спасибо.
Отливка отлично работает:
sp_mat X(2,2);
mat Y(X);
Y.print("Y:");