线性代数Eigen库使用说明

1模块和头文件说明

在这里插入图片描述
根据使用需求选择对应的头文件模块,下面也有各个主要模块使用说明。

2 Core说明

概述:线性代数中矩阵、向量、数组的包含头文件,其中向量对象用一列的矩阵来表示,行向量用一行的矩阵来表示

Matrix类声明:
template<typename _Scalar, int _Rows, int _Cols, int _Options, int _MaxRows, int _MaxCols>
class Eigen::Matrix< _Scalar, _Rows, _Cols, _Options, _MaxRows, _MaxCols >

_Scalar:表示所有支持的变量类型:如float,double,int等
_Rows :矩阵的行数或者设置为动态
_Cols :矩阵的列数或者设置为动态

模板参数
_Options任一的组合RowMajor或ColMajor,和任一的自动校准或DontAlign。前者控制存储顺序,默认为列大。后者控制对齐,这是矢量化所必需的。它默认为对齐矩阵,但固定大小不是数据包大小的倍数。
_MaxRows 最大行数。默认为_Rows(note)。
_MaxCols 最大列数。默认为_Cols(note)。

Eigen提供了许多类型定义,涵盖了通常的情况。这里有些例子:

Matrix2d是2x2的双精度方阵(Matrix<double, 2, 2>)
Vector4f是4个浮点数(Matrix<float, 4, 1>)的向量
RowVector3i是3个整数(Matrix<int, 1, 3>)的行向量
MatrixXf是浮点数(Matrix<float, Dynamic, Dynamic>)的动态尺寸矩阵
VectorXf是浮点数(Matrix<float, Dynamic, 1>)的动态大小矢量
Matrix2Xf是浮点数(Matrix<float, 2, Dynamic>)的部分固定大小(动态大小)矩阵
MatrixX3d是double(Matrix<double, Dynamic, 3>)的部分动态尺寸(固定尺寸)矩阵

矩阵和向量的使用示例

// Eigen.cpp : 线性代数示例
//

#include "pch.h"
#include <iostream>
#include "eigen3/Eigen/Dense"
using namespace Eigen;
using namespace std;
int main()
{
   
	//矩阵的使用
	Matrix<int,2,2> m1;
	m1(0, 0) = 1;
	m1(0, 1) = 2;
	m1(1, 0) = 3;
	m1(1, 1) = 4;
	cout << m1 << endl;
	//动态矩阵定义
	MatrixXd m2
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值