Armadillo c ++:有没有一种特定的方法可以有效地创建三角形或对称矩阵

时间:2013-07-31 16:35:45

标签: matrix armadillo symmetric triangular

我主要用于对称和三角矩阵的犰狳。我希望在内存存储方面保持高效。然而,似乎除了创建一个新的垫子并填充零(用于三角形)或用重复(用于对称)矩阵的下部/上部之外没有其他方法。

使用犰狳是否有更有效的方法使用三角形/对称矩阵?

谢谢, 安托

2 个答案:

答案 0 :(得分:3)

犰狳中没有对三角形或带状矩阵的具体支持。但是,由于3.4版本对稀疏矩阵的支持逐渐增加。根据您需要的犰狳功能以及矩阵的稀疏性,您可以使用SpMat<type>来实现compressed sparse column (CSC) format。对于矩阵中的每个非零值,CSC格式存储行索引以及值,因此您可能不会为三角矩阵节省大量内存。然而,带状对角矩阵应该消耗更少的内存。

答案 1 :(得分:1)

symmatu()/ symmatl()和trimatu()/ trimatl() 可能就是你要找的东西:

http://arma.sourceforge.net/docs.html