Added Block Operations tutorial and code examples

This commit is contained in:
Carlos Becker
2010-06-28 18:42:59 +01:00
parent 82e2e8b13a
commit 97889a7f46
6 changed files with 405 additions and 0 deletions

View File

@@ -0,0 +1,31 @@
#include <Eigen/Dense>
#include <iostream>
using namespace std;
using namespace Eigen;
int main()
{
MatrixXf m(3,3), n(2,2);
m << 1,2,3,
4,5,6,
7,8,9;
// assignment through a block operation,
// block as rvalue
n = m.block(0,0,2,2);
//print n
cout << "n = " << endl << n << endl << endl;
n << 1,1,
1,1;
// block as lvalue
m.block(0,0,2,2) = n;
//print m
cout << "m = " << endl << m << endl;
}

View File

@@ -0,0 +1,15 @@
#include <Eigen/Dense>
#include <iostream>
using namespace Eigen;
int main()
{
MatrixXf m(3,3);
m << 1,2,3,
4,5,6,
7,8,9;
std::cout << "2nd Row: "
<< m.row(1) << std::endl;
}

View File

@@ -0,0 +1,27 @@
#include <Eigen/Dense>
#include <iostream>
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;
//print first two columns
cout << "-- leftCols(2) --" << endl
<< m.leftCols(2) << endl << endl;
//print last two rows
cout << "-- bottomRows(2) --" << endl
<< m.bottomRows(2) << endl << endl;
//print top-left 2x3 corner
cout << "-- topLeftCorner(2,3) --" << endl
<< m.topLeftCorner(2,3) << endl;
}

View File

@@ -0,0 +1,14 @@
#include <Eigen/Dense>
#include <iostream>
using namespace Eigen;
int main()
{
MatrixXf m(3,3);
m << 1,2,3,
4,5,6,
7,8,9;
std::cout << m.block(0,0,2,2) << std::endl;
}

View File

@@ -0,0 +1,24 @@
#include <Eigen/Dense>
#include <iostream>
using namespace std;
using namespace Eigen;
int main()
{
VectorXf v(6);
v << 1, 2, 3, 4, 5, 6;
//print first three elements
cout << "-- head(3) --" << endl
<< v.head(3) << endl << endl;
//print last three elements
cout << "-- tail(3) --" << endl
<< v.tail(3) << endl << endl;
//print between 2nd and 5th elem. inclusive
cout << "-- segment(1,4) --" << endl
<< v.segment(1,4) << endl;
}