我使用犰狳主要是对称和三角形矩阵。我想在内存存储方面保持高效。然而,看起来除了创建一个新的mat并且用零填充(对于三角形)或对矩阵的下部/上部重复(对于对称)来说,没有别的办法。犰狳C++:有创建有效的三角形或对称矩阵的具体方法
有没有更有效的方法使用三角形/对称矩阵使用犰狳?
感谢, 安东尼
我使用犰狳主要是对称和三角形矩阵。我想在内存存储方面保持高效。然而,看起来除了创建一个新的mat并且用零填充(对于三角形)或对矩阵的下部/上部重复(对于对称)来说,没有别的办法。犰狳C++:有创建有效的三角形或对称矩阵的具体方法
有没有更有效的方法使用三角形/对称矩阵使用犰狳?
感谢, 安东尼
symmatu()/ symmatl()和trimatu()/ trimatl() 可能就是你正在寻找:
有没有具体的支持用于Armadillo中的三角形或带状矩阵。但是,由于版本3.4对稀疏矩阵的支持已经逐渐增加。根据您需要的犰狳功能和矩阵的稀疏程度,您可以使用实现compressed sparse column (CSC) format的SpMat<type>
获益。对于矩阵中的每个非零值,CSC格式将行索引与值存储在一起,因此您可能不会为三角矩阵节省大量内存。然而,带状对角线矩阵应该消耗更少的内存。