将Armadillo中的矩阵从稀疏转换为密集(从稀疏到密集)



我正在使用Armadillo C++线性代数库,并试图找出如何将sp_mat稀疏矩阵对象转换为标准mat密集矩阵。

从内部代码文档来看,sp_matmat不共享一个共同的父类,这让我相信没有办法将sp_mat强制转换为mat。顺便说一下,conv_to<mat>::from(sp_mat x)不起作用。

也许使用高级mat构造函数有一种棘手的方法可以做到这一点?例如,以某种方式创建一个零矩阵,并传递sp_mat中非零元素的位置和值。

有人知道这样做的有效方法吗?提前谢谢。

铸造效果非常好:

sp_mat X(2,2);
mat Y(X);
Y.print("Y:");

最新更新