将犰狳中的矩阵从稀疏矩阵转换为密集矩阵(spmat 到 mat)

GPS*_*ter 0 c++ linear-algebra sparse-matrix armadillo

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

查看内部代码 docsp_mat并且mat不共享公共父类,这让我相信没有办法将 an 强制转换sp_mat为 a mat。顺便说一句,conv_to<mat>::from(sp_mat x)不起作用。

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

有谁知道有效的方法来做到这一点?提前致谢。

mta*_*all 5

铸造效果非常好:

sp_mat X(2,2);

mat Y(X);

Y.print("Y:");
Run Code Online (Sandbox Code Playgroud)