简介
Eigen 中Matrix/Array提供了.block()来进行block区块操作,这是面向系数提供的操作功能。
语法
Eigen中提供了2种语法,针对产生的结果是一致的。但存在性能上的不同,任何时候,使用fixed-size模式都会得到更好地性能优化。
| 分类 | 语法 | 说明 |
|---|---|---|
| dynamic-size | matrix.block(i,j,p,q); | 执行时才知道维度大小(p,q)。 |
| fixed-size | matrix.block<p,q>(i,j); | 编译时指定维度大小(p,q)。 |
解释: 区块的维度大小尺寸:(p,q), 起始的位置:(i,j)。同样的,位置索引从0开始。
查看一个简单的示例:
//matrix_block1.cpp
#include <Eigen/Dense>
#include <iostream>
using namespace Eigen;
using namespace std;
int main()
{
Eigen::MatrixXf m(4,4);
m << 1, 2, 3, 4,
5, 6, 7, 8,
9,10,11,12,
13,14,15,16;
cout << "matrix m:" << endl << m <<endl<<endl;
cout<<"-----------------"<<endl;
cout << "Block in the middle -- m.block<2,2>(1,1)" << endl;
cout << m.block<2,2>(1,1) << endl << endl;
cout<<"-----------------"

最低0.47元/天 解锁文章
1699

被折叠的 条评论
为什么被折叠?



