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   三十二画生!  阅读(1118)  评论(0编辑  收藏  举报

相关博文:
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
点击右上角即可分享
微信分享提示