Eigen学习总结1

1.类型

Matrix有6个模板参数,主要使用前三个参数(元素类型,行数,列数),剩下的有默认值。

Matrix<typename Scalar, int RowsAtCompileTime, int ColsAtCompileTime>

Eigen的类型主要有矩阵、向量(其实也是一种矩阵),有固定大小和动态大小之分:

 typedef Matrix<float, 3, 3> Matrix3f;      Matrix3f a;//固定size的矩阵,分配3*3个float的空间
 typedef Matrix<double, Dynamic, Dynamic> MatrixXd;   MatrixXd b;//动态size的矩阵,未分配空间;

向量:

 typedef Matrix<float, 3, 1> Vector3f; //列向量,固定大小
 typedef Matrix<int, 1, 2> RowVector2i; //行向量,固定大小
 typedef Matrix<int, Dynamic, 1> VectorXi; //为固定大小,同理行向量

2.取元素

Matrix3f m;
m(0,0);//用括号去找括号里面对应位置的数据

m(index)也可以用于获取矩阵元素,但取决于matrix的存储顺序,默认是按列存储的。

取Matrix4f中的某个区域,m.block<3,3>(0,0) 表示从下标(0,0)开始取3*3的区域, 如果时向量,可以取前面x个元素,m.head<3>()

3.初始化

用逗号初始化

m<<1,1,1,
		2,2,2,
		3,3,3;

4.size的基础操作

matrix的大小可以通过rows()、cols()、size()获取,resize()(只用于动态matrix)可以重新调整动态matrix的大小。

5.Vector 通过复制自身形成一个多行数组

    Vector3f  m   3*1数组
    ArrayXXd p(num, dim); 一个num *dim 的数组;
    p = m.transpose.replicate(num,1)
    得到每一行等于m的数组,共有num行

本文参考了:https://blog.csdn.net/caomin1hao/article/details/81358911

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值