给出稀疏矩阵的本征旋转

问题描述 投票:0回答:1

在我自己的QR分解的C ++实现中,通过Givens旋转将旋转矩阵设置为单位矩阵,我试图使用this更通用的Eigen类用于稀疏矩阵。实际上,常见的压缩行/列存储格式不支持算法要求的'setIdentity'方法。

我添加到我的代码中的代码段无法编译,在这方面,Eigen的帮助对我来说是很晦涩的:

#include <Eigen/Sparse> 
SparseMatrix<double,ColMajor,int> G(m,m);  

G = G.setIdentity(m,m);

有什么建议吗?如何定义预处理器符号EIGEN_SPARSEMATRIX_PLUGIN

[BTW:那里有预先打包好的实现吗? Eigen和Armadillo都没有提供]]

linear-algebra eigen
1个回答
0
投票
这对我来说编译/运行正常。

#include <iostream> #include <Eigen/Sparse> int main() { constexpr int m = 10; Eigen::SparseMatrix<double,Eigen::ColMajor,int> G(m,m); G.setIdentity(); std::cout << G << std::endl; return 0; }

我建于

g++ -Wall -std=c++11 foo.cpp -o foo

您可能需要添加-I /usr/local/include/Eigen/以确保找到您的Eigen标头。
© www.soinside.com 2019 - 2024. All rights reserved.