mirror of
https://gitlab.com/libeigen/eigen.git
synced 2026-04-10 11:34:33 +08:00
improvements in tutorial page 4 : block operations
This commit is contained in:
@@ -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;
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user