我正在使用Armadillo C++线性代数库,并试图找出如何将sp_mat
稀疏矩阵对象转换为标准mat
密集矩阵。
从内部代码文档来看,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:");