美文网首页
Eigen矩阵库使用总结

Eigen矩阵库使用总结

作者: 一念之动即是行 | 来源:发表于2018-10-24 11:06 被阅读18次

    背景


    最近接触到了矩阵库Eigen,在此记录一下使用中遇到的一些问题。

    1. 块操作


    MatrixXd M = MatrixXd::Zero(50, 50);
    cout << M.block(2, 3, 5, 6) << endl;  //指的是M矩阵从(2,3)位置开始,下数5个元素,右数6个元素
    

    M.block(a, b, m ,n)指的是从下标(a,b)的元素开始,向下m个元素,向右n个元素。

    2. 矩阵和C++数组转换


    MatrxXd M = MatrixXd::Zero(50,50);
    //矩阵转数组
    double* test = M.data();
    //数组转矩阵
    Map<MatrixXd>tM(test, 50, 50);
    

    注意,这两种转换方式都是浅拷贝,改变源数据的值拷贝后对象的值也会改变。

    3. 矩阵输出到文件


    Eigen重载了<<,直接输出到文件即可。

    MatrixXd M = MatrixXd::Zero(5, 5);
    ofstream fout("test.txt");
    fout << M;
    fout.close();
    

    测试结果:


    测试结果

    相关文章

      网友评论

          本文标题:Eigen矩阵库使用总结

          本文链接:https://www.haomeiwen.com/subject/ebsttqtx.html