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

Posted

技术标签:

【中文标题】将犰狳中的矩阵从稀疏转换为密集(spmat 到 mat)【英文标题】:Convert Matricies in Armadillo from Sparse to Dense (spmat to mat) 【发布时间】:2014-11-11 00:07:54 【问题描述】:

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

查看internal code doc、sp_matmat 不共享一个共同的父类,这让我相信没有办法将sp_mat 转换为mat。顺便说一句,conv_to<mat>::from(sp_mat x) 不起作用。

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

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

【问题讨论】:

【参考方案1】:

铸造效果非常好:

sp_mat X(2,2);

mat Y(X);

Y.print("Y:");

【讨论】:

哇。我不敢相信我错过了。非常感谢!也许我遗漏了一些东西,但我没有看到 sp_mat 作为 api 文档中 mat 构造函数的输入。 arma.sourceforge.net/docs.html#Mat

以上是关于将犰狳中的矩阵从稀疏转换为密集(spmat 到 mat)的主要内容,如果未能解决你的问题,请参考以下文章