摘自Eigen官网,学习的随笔
Class Matrix
构造器:
构造器分为动态和非动态,MatrixXt(t:is the type)为动态,Matrix3t为非动态;以下两者效果一样。
MatrixXd m(2,2); Matrix2d m;
Shape:
对Matrix的实例,提供rows(), cols(), size()方法来查询Shape.
MatrixXd m(2,5);
m.resize(4,3); //m会被强制调整为3X4
m.size(); //结果为12
m.rows(); //结果为4
m.cols(); //结果为3
MatrixXf a(2,2);
MatrixXf b(3,3);
a = b; //则a为3X3
矩阵运算:
矩阵运算只需对Matrix实例+,-,*即可。
transpose(), 转置
conjugate(),共轭
adjoint(), 共轭转置
对于向量的点乘和交叉乘操作,使用dot(), cross().
Vector3d v(1,2,3);
Vector3d w(0,1,2);
v.dot(w); //点乘
v.cross(w); //叉乘
v.adjoint()*w; //共轭转置再相乘与点乘相同,此时也与矩阵的运算相统一。
对向量的内积和外积其实都可以与矩阵运算进行统一
x,y的内积等于x的转置乘y
x,y的外积等于x的反对称矩阵乘y
其他一些操作:
Matrix2d mat;
mat<<1,2,3,4;
mat.sum(); //所有元素值相加
mat.prod(); //product,所有元素值相乘
mat.mean(); //平均值
mat.minCoeff(); //最小值
mat.maxCoeff(); //最大值
mat.trace(); //迹