linear-algebra - 具有稀疏矩阵的特征中的吉文斯旋转
问题描述
在我自己的 QR 分解的 C++ 实现中,通过 Givens 旋转将旋转矩阵设置为单位矩阵,我试图将这个更通用的 Eigen 类用于稀疏矩阵。事实上,常见的压缩行/列存储格式不支持算法要求的“setIdentity”方法。
我添加到代码中的代码段无法编译,在这方面,Eigen 帮助对我来说非常模糊:
#include <Eigen/Sparse>
SparseMatrix<double,ColMajor,int> G(m,m);
G = G.setIdentity(m,m);
有什么建议么?如何定义预处理器符号EIGEN_SPARSEMATRIX_PLUGIN
?
[顺便说一句:那里有任何预先打包好的实施方案吗?Eigen 和犰狳似乎都没有提供它]
解决方案
这对我来说编译/运行良好。
#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/
以确保它找到您的特征标头。
推荐阅读
- angular - HttpServletRequest request.getHeader() 总是为空?
- java - 将标头传递给自定义执行器健康端点
- javascript - 像 slack-demo 这样构建动画的库
- scala - 如何在 gatling 中为每个用户(运行的线程)设置不同的协议
- java - @Schedule Cron 表达式根据属性文件中的夏令时调整
- android - 如何多次更新TextView
- python - 数据显示问题——flask、python sqlalchemy
- python - 为什么在使用python在LSTM中训练模型之前进行scaler.fit变换时显示“'list'对象没有属性'values'”的错误
- sql - 如何防止过滤器导致查询运行速度变慢
- python - PyOTP 生成的代码与 Google Authenticator 生成的代码不匹配