improvements in tutorial page 4 : block operations

This commit is contained in:
Benoit Jacob
2010-10-18 08:44:27 -04:00
parent 4b0fb968ea
commit 1c15a6d96f
4 changed files with 52 additions and 57 deletions

View File

@@ -6,13 +6,13 @@ using namespace Eigen;
int main()
{
Array33f m;
m << 1,2,3,
4,5,6,
7,8,9;
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;
Array33f res = n.block(0,0,3,3) * m;
cout << "res =" << endl << res << endl;
Array22f m;
m << 1,2,
3,4;
Array44f a = Array44f::Constant(0.6);
cout << "Here is the array a:" << endl << a << endl << endl;
a.block<2,2>(1,1) = m;
cout << "Here is now a with m copied into its central 2x2 block:" << endl << a << endl << endl;
a.block(0,0,2,3) = a.block(2,1,2,3);
cout << "Here is now a with bottom-right 2x3 block copied into top-left 2x2 block:" << endl << a << endl << endl;
}

View File

@@ -1,14 +1,17 @@
#include <Eigen/Dense>
#include <iostream>
using namespace std;
int main()
{
Eigen::MatrixXf m(3,3);
m << 1,2,3,
4,5,6,
7,8,9;
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;
cout << "Here is the matrix m:" << endl << m << endl;
cout << "2nd Row: " << m.row(1) << endl;
m.col(2) += 3 * m.col(0);
cout << "After adding 3 times the first column into the third column, the matrix m is:\n";
cout << m << endl;
}

View File

@@ -1,6 +1,8 @@
#include <Eigen/Dense>
#include <iostream>
using namespace std;
int main()
{
Eigen::MatrixXf m(4,4);
@@ -8,11 +10,11 @@ int main()
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)
cout << "Block in the middle" << endl;
cout << m.block<2,2>(1,1) << endl << endl;
for (int i = 1; i <= 3; ++i)
{
std::cout << "Block of size " << i << std::endl;
std::cout << m.block(0,0,i,i) << std::endl << std::endl;
cout << "Block of size " << i << "x" << i << endl;
cout << m.block(0,0,i,i) << endl << endl;
}
}