1. 矩阵.block<>()
Eigen 为 Matrix 、Array 和 Vector提供了块操作方法。在Eigen中最常用的块操作函数是 .block() 。
block() 方法的定义如下:block of size (p,q) ,starting at (i,j)。
-
matrix.block(i,j,p,q);
-
matrix.block<p,q>(i,j);
上述两种形式都可以被用在固定大小和动态大小的矩阵中。
#include <iostream>
#include <eigen3/Eigen/Dense>
using namespace Eigen;
using namespace std;
int main(int argc ,char** argv)
{
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 "<<i<<" x "<<i<<endl;
cout<<m.block(0,0,i,i)<<endl<<endl;
}
return 0;
}