eigen矩陣可以使用成員函式col(int i);row(i);對矩陣的行列進行賦值,要注意的是左值和右值為同乙個矩陣中的塊時容易出現bug,盡量使用中間變數去避免這種情況,乙個示例如下
#include#includeusing namespace std;
int main()
{ eigen::matrix3d r;
eigen::vector3d v(1,2,3);
eigen::angleaxisd t_v(1, eigen::vector3d::unitz());//unitz()返回乙個z軸上的單位向量(0,0,1)
r=t_v.matrix();
cout<<"r = \n"t.col(0)=r.col(0);
t.col(1)=r.col(1);
t.col(2)=r.col(2);
t.col(3)=v;
cout<<"t = \n"cmake_minimum_required(version 2.8)
project(usegeometry)
include_directories(
"/usr/include/eigen3"
)add_executable(eigen_geometry eigen_geometry.cpp)
這個標頭檔案中包含了eigen常用到的矩陣型別的巨集定義,存在這兒以備不時之需
//
// eigen_types.h created by gaoxiang19 on 11/3/18.
//#ifndef myslam_eigen_types_h
#define myslam_eigen_types_h
#include #include #include #include // double matricies
typedef eigen::matrixmatxx;
typedef eigen::matrixmat1010;
typedef eigen::matrixmat1313;
typedef eigen::matrixmat810;
typedef eigen::matrixmat83;
typedef eigen::matrixmat66;
typedef eigen::matrixmat53;
typedef eigen::matrixmat43;
typedef eigen::matrixmat42;
typedef eigen::matrixmat33;
typedef eigen::matrixmat22;
typedef eigen::matrixmat23;
typedef eigen::matrixmat88;
typedef eigen::matrixmat77;
typedef eigen::matrixmat49;
typedef eigen::matrixmat89;
typedef eigen::matrixmat94;
typedef eigen::matrixmat98;
typedef eigen::matrixmat99;
typedef eigen::matrixmat66;
typedef eigen::matrixmat96;
typedef eigen::matrixmat81;
typedef eigen::matrixmat18;
typedef eigen::matrixmat91;
typedef eigen::matrixmat19;
typedef eigen::matrixmat84;
typedef eigen::matrixmat48;
typedef eigen::matrixmat44;
typedef eigen::matrixmat1414;
typedef eigen::matrixmat1515;
// float matricies
typedef eigen::matrixmat33f;
typedef eigen::matrixmat103f;
typedef eigen::matrixmat22f;
typedef eigen::matrixvec3f;
typedef eigen::matrixvec2f;
typedef eigen::matrixvec6f;
typedef eigen::matrixmat18f;
typedef eigen::matrixmat66f;
typedef eigen::matrixmat88f;
typedef eigen::matrixmat84f;
typedef eigen::matrixmat66f;
typedef eigen::matrixmat44f;
typedef eigen::matrixmat1212f;
typedef eigen::matrixmat1313f;
typedef eigen::matrixmat1010f;
typedef eigen::matrixmat99f;
typedef eigen::matrixmat42f;
typedef eigen::matrixmat62f;
typedef eigen::matrixmat12f;
typedef eigen::matrixmatxxf;
typedef eigen::matrixmat1414f;
// double vectors
typedef eigen::matrixvec15;
typedef eigen::matrixvec14;
typedef eigen::matrixvec13;
typedef eigen::matrixvec10;
typedef eigen::matrixvec9;
typedef eigen::matrixvec8;
typedef eigen::matrixvec7;
typedef eigen::matrixvec6;
typedef eigen::matrixvec5;
typedef eigen::matrixvec4;
typedef eigen::matrixvec3;
typedef eigen::matrixvec2;
typedef eigen::matrixvec1;
typedef eigen::matrixvecx;
// float vectors
typedef eigen::matrixvec12f;
typedef eigen::matrixvec8f;
typedef eigen::matrixvec10f;
typedef eigen::matrixvec4f;
typedef eigen::matrixvec12f;
typedef eigen::matrixvec13f;
typedef eigen::matrixvec9f;
typedef eigen::matrixvecxf;
typedef eigen::matrixvec14f;
// quaternions
typedef eigen::quaterniond qd;
typedef eigen::quaternionf qf;
// vector of eigen vectors
typedef std::vector> vecvec2;
typedef std::vector> vecvec3;
typedef std::vector> vecvec2f;
typedef std::vector> vecvec3f;
// map of eigen matrix
typedef std::map, eigen::aligned_allocator> mapmatxx;
#endif
矩陣入門(Eigen和Opencv類似)
1 eigen矩陣定義 eigen定義 型別 行 列 matrix eg.matrix型別為浮點型3行4列的矩陣 1 2 3 4 2 2 3 4 3 2 3 4 2 預定義的特殊矩陣vector列矩陣 rowvector行矩陣 eg.vector3d matrix 為3行1列的矩陣 eg.rowve...
Eigen學習筆記 3 矩陣和向量的運算
原文 eigen官網 matrix and vector arithmetic 本節內容主要介紹eigen中關於矩陣 向量 標量之間的數 算。eigen提供了matrix vector的運算操作,既包括過載了c 的算術運算子 也引入了一些特殊的運算比如點乘dot 叉乘cross 等。左右兩側的變數都...
矩陣行列序的問題
include stdio.h define m 2 define n 5 void main int iscore m n int i,j system graftabl 936 呼叫ms dos中文支援 clrscr 清屏 printf d x d 矩陣 n m,n for i 0 ifor j...