ThinkOver CSDN Blog

记录我在学习开发过程中常用的一些资料

C++矩阵运算库Eigen使用

1.两种不同类型的Eigen矩阵相加,或者赋值,需要用到cast函数:

    Matrix3d m = Matrix3d::Random();
    Matrix3f m2 = m.cast<float>();
    Matrix3d m = Matrix3d::Random();
    Matrix3f m2 = Matrix3f::Random();
    Matrix3f m3 = m.cast<float>() + m2;

2.数组转化为Eigen::Matrix

int array[9];
cout << "colMajor matrix = \n" << Map<Matrix3i>(array) << endl;                      // map a contiguous array as a column-major matrix
cout << "rowMajor matrix = \n" << Map<Matrix<int, 3, 3, RowMajor>>(array) << endl;   // map a contiguous array as a row-major matrix

Map<MatrixXi>  eigMat1(array, 3, 3);                     // eigMat1和array指向的是同一个内存空间,是绑定在一起的
MatrixXi       eigMat2 = Map<MatrixXi>(array, 3, 3);    //  eigMat1和array指向不同的内存空间,互不影响

3.Eigen::Matrix转化为数组

Matrix3d eigMat;

double* eigMatptr = eigMat.data();
double* eigMatptrnew = new double[eigMat.size()];
Map<MatrixXd>(eigMatptrnew, eigMat.rows(), eigMat.cols()) = eigMat;




阅读更多
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/daybreak222/article/details/80332688
文章标签: Eigen C++
个人分类: c++
想对作者说点什么? 我来说一句

C++矩阵运算

2017年11月20日 4.25MB 下载

矩阵所有运算的C++代码

2009年04月11日 82KB 下载

C++矩阵运算

2017年11月06日 612KB 下载

没有更多推荐了,返回首页

不良信息举报

C++矩阵运算库Eigen使用

最多只允许输入30个字

加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!
关闭
关闭