我在Eigen C++中有一个稀疏矩阵A
。现在我想将它对称化到另一个稀疏矩阵Asym
:如何在Eigen C++中对称稀疏矩阵?
我希望如此,因为它是那么简单:
Eigen::SparseMatrix<FLOATDATA> A;
...
Eigen::SparseMatrix<FLOATDATA> Asym = 0.5*(A+A.transpose()); // error here
但由于显而易见的原因,它提供了以下断言失败错误:
error: static assertion failed: THE_STORAGE_ORDER_OF_BOTH_SIDES_MUST_MATCH
我的问题是如何在Eigen C++中整齐地做上述操作?
是一种对称?如果没有,你可能不会添加A及其转置。换句话说,当且仅当m == n时,可以添加两个矩阵mxn和nxm。我也从未见过A + A^T执行的单一公式。你是否在尝试A^T x A,这有时候很有意义。 –