mirror of
https://gitlab.com/libeigen/eigen.git
synced 2026-04-10 11:34:33 +08:00
Added Block Operations tutorial and code examples
This commit is contained in:
31
doc/examples/Tutorial_BlockOperations_block_assignment.cpp
Normal file
31
doc/examples/Tutorial_BlockOperations_block_assignment.cpp
Normal 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;
|
||||
}
|
||||
15
doc/examples/Tutorial_BlockOperations_colrow.cpp
Normal file
15
doc/examples/Tutorial_BlockOperations_colrow.cpp
Normal 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;
|
||||
}
|
||||
27
doc/examples/Tutorial_BlockOperations_corner.cpp
Normal file
27
doc/examples/Tutorial_BlockOperations_corner.cpp
Normal 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;
|
||||
}
|
||||
14
doc/examples/Tutorial_BlockOperations_print_block.cpp
Normal file
14
doc/examples/Tutorial_BlockOperations_print_block.cpp
Normal 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;
|
||||
}
|
||||
24
doc/examples/Tutorial_BlockOperations_vector.cpp
Normal file
24
doc/examples/Tutorial_BlockOperations_vector.cpp
Normal 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;
|
||||
}
|
||||
Reference in New Issue
Block a user