Eigen子矩阵操作
1 子矩阵操作简介 子矩阵操作又称块操作,在矩阵运算中,子矩阵的提取和操作应用也十分广泛。因此Eigen中也提供了相关操作的方法。提取的子矩阵在操作过程中既可以用作左值也可以用作右值。 2 块操作的一般使用方法 在Eigen中最基本的快操作运算是用 .block() 完成的。提取的子矩阵同样分为动态大小和固定大小。 块操作 构建动态大小子矩阵 提取块大小为(p,q),起始于(i,j) matrix.block(i,j,p,q) 同样需要注意的是在Eigen中,索引是从0开始。所有的操作方法都可以适用于Array.同样使用固定大小的操作方式在小型矩阵运算时更加的快,但要求在编译时就要知道矩阵的大小。 下面是一个使用示例: #include <iostream> #include "Eigen/Dense" using namespace std; using namespace Eigen; int main() { MatrixXf m(4,4); m<< 1,2,3,4, 5,6,7,8, 9,10,11,12, 13,14,15,16; cout<<"Block in the middle"<<endl; cout<<m.block<2,2>(1,1)<<endl<<endl; for(int i = 1;i <= 3;++i) { cout<<"Block of size "