使用的是C++的Eigen库
在官网下载之后,记住文件夹的路径
在VS2017创建一个项目之后,点击项目,属性,配置属性,C/C++,常规,附加包含目录,
右边手动点击添加即可。
测试一下这段代码能不能运行吧。
#include "pch.h"
#include <iostream>
#include<Eigen/Dense>
using namespace Eigen;
using namespace std;
int main()
{
MatrixXf a(4, 1);//必须要进行初始化
a = MatrixXf::Zero(4, 1);//初始化为0
a << 1, 2, 3, 4;//手动赋值
cout << "矩阵a:" << endl << a << endl;
cout << "逆矩阵d转置:" << endl << a.transpose() << endl;
system("pause");
return 0;
}
创建一个任意大小的矩阵
include "pch.h"
#include
#include
using namespace Eigen;
using namespace std;
int main()
{
MatrixXf a(2, 2);//必须要进行初始化
a = MatrixXf::Zero(2, 2);//初始化为0
for (int i = 0; i < 2; i++)
{
for (int j = 0; j < 2; j++)
{
cin >> a(i, j);
}
}
cout << "矩阵a:" << endl << a << endl;
cout << "逆矩阵d转置:" << endl << a.transpose() << endl;
#include
using namespace Eigen;
using namespace std;
int main()
{
MatrixXf a(2, 2);//必须要进行初始化
a = MatrixXf::Zero(2, 2);//初始化为0
for (int i = 0; i < 2; i++)
{
for (int j = 0; j < 2; j++)
{
cin >> a(i, j);
}
}
cout << "矩阵a:" << endl << a << endl;
cout << "逆矩阵d转置:" << endl << a.transpose() << endl;
system("pause");
return 0;
}
顺带还有怎么输出矩阵以及矩阵的转置
矩阵的加法运算和乘法运算应该是已经重载好了的
MatrixXd和MatrixXf应该就是double类型数据和float类型数据的区别吧。
关键是计算特征值和特征向量
/*
首先在这个test文件中处理得到
25.4 25
25 25.4
这个矩阵的特征值和特征向量吧
*/
#include "pch.h"
#include <iostream>
#include<Eigen/Dense>
using namespace Eigen;
using namespace std;
int main()
{
MatrixXd a(2, 2);//必须要进行初始化
a = MatrixXd::Zero(2, 2);//初始化为0
for (int i = 0; i < 2; i++)
{
for (int j = 0; j < 2; j++)
{
cin >> a(i, j);
}
}
EigenSolver<MatrixXd> es(a);
MatrixXd D = es.pseudoEigenvalueMatrix();//对角线特征值矩阵
MatrixXd V = es.pseudoEigenvectors();//特征向量矩阵
cout << D << endl;
cout << V << endl;
return 0;
}
原文链接: https://www.cnblogs.com/theda/p/14612090.html
欢迎关注
微信关注下方公众号,第一时间获取干货硬货;公众号内回复【pdf】免费获取数百本计算机经典书籍
原创文章受到原创版权保护。转载请注明出处:https://www.ccppcoding.com/archives/209237
非原创文章文中已经注明原地址,如有侵权,联系删除
关注公众号【高性能架构探索】,第一时间获取最新文章
转载文章受原作者版权保护。转载请注明原作者出处!