diff options
author | Jitse Niesen <jitse@maths.leeds.ac.uk> | 2010-07-14 10:16:12 +0100 |
---|---|---|
committer | Jitse Niesen <jitse@maths.leeds.ac.uk> | 2010-07-14 10:16:12 +0100 |
commit | b0bd1cfa059983925456630c02fbaf0a76db8aae (patch) | |
tree | c0cd933006183500c3e9b161d491186e1535a2ec /doc/examples | |
parent | c36316f2845287b913b303641479aef45b14c3fe (diff) |
Tutorial page 4: add some text, diversify examples.
Use \verbinclude for output text to disable syntax highlighting.
Give tables consistent look.
Diffstat (limited to 'doc/examples')
-rw-r--r-- | doc/examples/Tutorial_BlockOperations_block_assignment.cpp | 23 | ||||
-rw-r--r-- | doc/examples/Tutorial_BlockOperations_colrow.cpp | 11 | ||||
-rw-r--r-- | doc/examples/Tutorial_BlockOperations_corner.cpp | 20 | ||||
-rw-r--r-- | doc/examples/Tutorial_BlockOperations_print_block.cpp | 20 | ||||
-rw-r--r-- | doc/examples/Tutorial_BlockOperations_vector.cpp | 20 |
5 files changed, 32 insertions, 62 deletions
diff --git a/doc/examples/Tutorial_BlockOperations_block_assignment.cpp b/doc/examples/Tutorial_BlockOperations_block_assignment.cpp index 0419a500f..56ca69a6e 100644 --- a/doc/examples/Tutorial_BlockOperations_block_assignment.cpp +++ b/doc/examples/Tutorial_BlockOperations_block_assignment.cpp @@ -6,26 +6,13 @@ using namespace Eigen; int main() { - MatrixXf m(3,3), n(2,2); - + Array33f m; 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 + Array<float,5,5> n = Array<float,5,5>::Constant(0.6); + n.block(1,1,3,3) = m; 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; + Array33f res = n.block(0,0,3,3) * m; + cout << "res =" << endl << res << endl; } diff --git a/doc/examples/Tutorial_BlockOperations_colrow.cpp b/doc/examples/Tutorial_BlockOperations_colrow.cpp index e639324b2..e98263057 100644 --- a/doc/examples/Tutorial_BlockOperations_colrow.cpp +++ b/doc/examples/Tutorial_BlockOperations_colrow.cpp @@ -1,15 +1,14 @@ #include <Eigen/Dense> #include <iostream> -using namespace Eigen; int main() { - MatrixXf m(3,3); - + Eigen::MatrixXf m(3,3); m << 1,2,3, 4,5,6, 7,8,9; - - std::cout << "2nd Row: " - << m.row(1) << std::endl; + std::cout << "2nd Row: " << m.row(1) << std::endl; + m.col(0) += m.col(2); + std::cout << "m after adding third column to first:\n"; + std::cout << m << std::endl; } diff --git a/doc/examples/Tutorial_BlockOperations_corner.cpp b/doc/examples/Tutorial_BlockOperations_corner.cpp index 96c6df62b..3a31507aa 100644 --- a/doc/examples/Tutorial_BlockOperations_corner.cpp +++ b/doc/examples/Tutorial_BlockOperations_corner.cpp @@ -2,26 +2,16 @@ #include <iostream> using namespace std; -using namespace Eigen; int main() { - MatrixXf m(4,4); - + Eigen::Matrix4f m; 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; + cout << "m.leftCols(2) =" << endl << m.leftCols(2) << endl << endl; + cout << "m.bottomRows<2>() =" << endl << m.bottomRows<2>() << endl << endl; + m.topLeftCorner(1,3) = m.bottomRightCorner(3,1).transpose(); + cout << "After assignment, m = " << endl << m << endl; } diff --git a/doc/examples/Tutorial_BlockOperations_print_block.cpp b/doc/examples/Tutorial_BlockOperations_print_block.cpp index a2d0db864..0fdefecdf 100644 --- a/doc/examples/Tutorial_BlockOperations_print_block.cpp +++ b/doc/examples/Tutorial_BlockOperations_print_block.cpp @@ -1,14 +1,18 @@ #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; + Eigen::MatrixXf m(4,4); + m << 1, 2, 3, 4, + 5, 6, 7, 8, + 9,10,11,12, + 13,14,15,16; + std::cout << "Block in the middle" << std::endl; + std::cout << m.block<2,2>(1,1) << std::endl << std::endl; + for (int i = 1; i < 4; ++i) + { + std::cout << "Block of size " << i << std::endl; + std::cout << m.block(0,0,i,i) << std::endl << std::endl; + } } diff --git a/doc/examples/Tutorial_BlockOperations_vector.cpp b/doc/examples/Tutorial_BlockOperations_vector.cpp index 211b55472..4a0b02342 100644 --- a/doc/examples/Tutorial_BlockOperations_vector.cpp +++ b/doc/examples/Tutorial_BlockOperations_vector.cpp @@ -2,23 +2,13 @@ #include <iostream> using namespace std; -using namespace Eigen; int main() { - VectorXf v(6); - + Eigen::ArrayXf 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; + cout << "v.head(3) =" << endl << v.head(3) << endl << endl; + cout << "v.tail<3>() = " << endl << v.tail<3>() << endl << endl; + v.segment(1,4) *= 2; + cout << "after 'v.segment(1,4) *= 2', v =" << endl << v << endl; } |