VS2019配置eigen

本文讲述如何在VS2019中配置eigen

eigen版本:eigen-3.3.9 

百度网盘地址:https://pan.baidu.com/s/1Bu5A58qV2n8doDs4NpPfJQ  提取码:cjbg

步骤:

下载eigen压缩包,并解压在你想要的位置。

1:右键单击项目名称选择属性;

2:在左侧找到:配置属性——》C/C++——》常规——》附加包含目录,找到解压缩的eigen-3.3.9文件夹位置,进行添加。点击确定,结束。

 

最后输入如下代码进行测试:

#include <iostream>
#include <Eigen/SVD>
#include <Eigen/Core>

using namespace std;

// 利用Eigen库,采用SVD分解的方法求解矩阵伪逆,默认误差er为0
Eigen::MatrixXd pinv_eigen_based(Eigen::MatrixXd& origin, const float er = 0) {
// 进行svd分解
Eigen::JacobiSVD<Eigen::MatrixXd> svd_holder(origin,
Eigen::ComputeThinU |
Eigen::ComputeThinV);
// 构建SVD分解结果
Eigen::MatrixXd U = svd_holder.matrixU();
Eigen::MatrixXd V = svd_holder.matrixV();
Eigen::MatrixXd D = svd_holder.singularValues();

// 构建S矩阵
Eigen::MatrixXd S(V.cols(), U.cols());
S.setZero();

for (unsigned int i = 0; i < D.size(); ++i) {

if (D(i, 0) > er) {
S(i, i) = 1 / D(i, 0);
}
else {
S(i, i) = 0;
}
}
return V * S * U.transpose();
}

int main() {

Eigen::MatrixXd B(7, 7);
B << 1, 2, 3, 4, 5, 6, 7,
1, 2, 3, 4, 5, 6, 7,
1, 2, 3, 4, 5, 6, 7,
1, 2, 3, 4, 5, 6, 7,
1, 2, 3, 4, 5, 6, 7,
1, 2, 3, 4, 5, 6, 7,
1, 2, 3, 4, 5, 6, 7;

// 打印矩阵B的伪逆矩阵
cout << B << endl;

cout << "矩阵B的伪逆为:" << endl;

cout << pinv_eigen_based(B) << endl;

getchar();
}

 

posted on 2022-02-23 21:31  三十二画生!  阅读(1071)  评论(0编辑  收藏  举报

导航