Eigen初始化及基本操作大全

这篇博客详述了Eigen3库的使用,包括矩阵和向量的基本定义与初始化、高级初始化、运算函数、块操作、计算特征值和特征向量,特别是解线性最小二乘问题的详细步骤,如齐次和非齐次线性最小二乘的无约束和带约束条件解法。
摘要由CSDN通过智能技术生成

    Eigen常用操作

 
Eigen3安装: ubuntu如何安装Eigen
 

include_directories (/usr/include/Eigen/)

这篇博客主要内容有:

  1. Eigen常用头文件
  2. Eigen矩阵和向量的基本定义与初始化
  3. 高级初始化
      - 行向量RowVectorXd
      - 块赋值
  4. 基本运算函数
  5. 常用块操作
  6. 计算特征值和特征向量
  7. Array类, ArrayXf , ArrayXXf
  8. 解线性最小二乘
      - 齐次 min||Mx||,分不带约束和带约束条件
      - 非齐次 min||Mx + b||,分不带约束和带约束添加
     

1. 常用头文件

#include <Eigen/Dense> //包含了下面的Core/Geometry/LU/Cholesky/SVD/QR/Eigenvalues模块
#include <Eigen/Core> // 包含Matrix和Array类,基础的线性代数运算和数组操作
#include <Eigen/LU> // 包含求逆,行列式,LU分解
#include <Eigen/Geometry> //包含旋转,平移,缩放,2维和3维的各种变换。
#include <Eigen/Cholesky> //包含LLT和LDLT Cholesky分解
#include <Eigen/SVD> //包含SVD分解
#include <Eigen/QR> //包含QR分解
#include <Eigen/Eigenvalues> //包含特征值,特征向量分解

#include <Eigen/Sparse> //包含稀疏矩阵的存储和运算

#include <Eigen/Eigen> //包含Dense和Sparse

2. 基本定义及初始化

Eigen::Matrix<double,2,2> m;
m << 1,2,3,4;

Eigen::MatrixXf m1(2,3);
m1 << 1,2,3,
	  4,5,6;

Eigen::Matrix3d m2 = Eigen::Matrix3d::Identity();//Eigen::Matrix3d::Zero();

Eigen::Matrix3d m3 = Eigen::Matrix3d::Random(); //随机初始化

Eigen::Vector3f v1 = Eigen::Vector3f::Zero();

Eigen::Vector3d v2(1.0, 2.0, 3.0);

Eigen::VectorXf v3(20); //维度为20的向量,未初始化.
v3 << 1.0 , 2.0 , 3.0;

cout << m1(1,1) << endl;
cout << v1(1) << endl;

3. 高级初始化

//1. Eigen::RowVectorXd //行向量,之前的Vector都是列向量
using namespace Eigen;
RowVectorXd rv1(1,2,3);
RowVectorXd rv2(4);
rv2 << 1,2,3,4;
RowVectorXd joined_rv12(7);
joined_rv12 << rv1 , rv2;//rv1后接rv2
//joined_rv12 is:
1 2 3 1 2 3 4;

//2. 块操作
MatrixXf m4(2,2);
m4 << 1,2,3,4;
MatrixXf m5(4,4);
m5 << m4, m4 / 10, m4 * 10, m4;//将m5分了四块赋值
//m5 is :
1  2  0.1 0.2 
3  4 
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值