Eigen库打印操作

#include <Eigen/Dense>
Eigen::Matrix3d mat(2,2);
cout<<mat(0,0)<<endl;
  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个元素。

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

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

  1. 矩阵输出到文件

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

MatrixXd M = MatrixXd::Zero(5, 5);
ofstream fout("test.txt");
fout << M;
fout.close();
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容