mirror of
https://gitlab.com/libeigen/eigen.git
synced 2026-04-10 11:34:33 +08:00
Modified Array Class tutorial, added examples
This commit is contained in:
24
doc/examples/Tutorial_ArrayClass_accessing.cpp
Normal file
24
doc/examples/Tutorial_ArrayClass_accessing.cpp
Normal file
@@ -0,0 +1,24 @@
|
||||
#include <Eigen/Dense>
|
||||
#include <iostream>
|
||||
|
||||
using namespace Eigen;
|
||||
using namespace std;
|
||||
|
||||
int main()
|
||||
{
|
||||
ArrayXXf m(2,2);
|
||||
|
||||
//assign some values coefficient by coefficient
|
||||
m(0,0) = 1.0; m(0,1) = 2.0;
|
||||
m(1,0) = 3.0; m(1,1) = 4.0;
|
||||
|
||||
//print values to standard output
|
||||
cout << m << endl << endl;
|
||||
|
||||
// using the comma-initializer is also allowed
|
||||
m << 1.0,2.0,
|
||||
3.0,4.0;
|
||||
|
||||
//print values to standard output
|
||||
cout << m << endl;
|
||||
}
|
||||
22
doc/examples/Tutorial_ArrayClass_addition.cpp
Normal file
22
doc/examples/Tutorial_ArrayClass_addition.cpp
Normal file
@@ -0,0 +1,22 @@
|
||||
#include <Eigen/Dense>
|
||||
#include <iostream>
|
||||
|
||||
using namespace Eigen;
|
||||
using namespace std;
|
||||
|
||||
int main()
|
||||
{
|
||||
ArrayXXf a(3,3);
|
||||
ArrayXXf b(3,3);
|
||||
|
||||
a << 1,2,3,
|
||||
4,5,6,
|
||||
7,8,9;
|
||||
|
||||
b << 1,2,3,
|
||||
1,2,3,
|
||||
1,2,3;
|
||||
|
||||
cout << "a + b = " << endl
|
||||
<< a + b << endl;
|
||||
}
|
||||
17
doc/examples/Tutorial_ArrayClass_addition_scalar.cpp
Normal file
17
doc/examples/Tutorial_ArrayClass_addition_scalar.cpp
Normal file
@@ -0,0 +1,17 @@
|
||||
#include <Eigen/Dense>
|
||||
#include <iostream>
|
||||
|
||||
using namespace Eigen;
|
||||
using namespace std;
|
||||
|
||||
int main()
|
||||
{
|
||||
ArrayXXf a(3,3);
|
||||
|
||||
a << 1,2,3,
|
||||
4,5,6,
|
||||
7,8,9;
|
||||
|
||||
cout << "a + 2 = " << endl
|
||||
<< a + 2 << endl;
|
||||
}
|
||||
38
doc/examples/Tutorial_ArrayClass_interop.cpp
Normal file
38
doc/examples/Tutorial_ArrayClass_interop.cpp
Normal file
@@ -0,0 +1,38 @@
|
||||
#include <Eigen/Dense>
|
||||
#include <iostream>
|
||||
|
||||
using namespace Eigen;
|
||||
using namespace std;
|
||||
|
||||
int main()
|
||||
{
|
||||
MatrixXf m(2,2);
|
||||
MatrixXf n(2,2);
|
||||
|
||||
MatrixXf result(2,2);
|
||||
|
||||
//initialize matrices
|
||||
m << 1,2,
|
||||
3,4;
|
||||
|
||||
n << 5,6,
|
||||
7,8;
|
||||
|
||||
// mix of array and matrix operations
|
||||
// first coefficient-wise addition
|
||||
// then the result is used with matrix multiplication
|
||||
result = (m.array() + 4).matrix() * m;
|
||||
|
||||
cout << "-- Combination 1: --" << endl
|
||||
<< result << endl << endl;
|
||||
|
||||
|
||||
// mix of array and matrix operations
|
||||
// first coefficient-wise multiplication
|
||||
// then the result is used with matrix multiplication
|
||||
result = (m.array() * n.array()).matrix() * m;
|
||||
|
||||
cout << "-- Combination 2: --" << endl
|
||||
<< result << endl << endl;
|
||||
|
||||
}
|
||||
34
doc/examples/Tutorial_ArrayClass_interop_array.cpp
Normal file
34
doc/examples/Tutorial_ArrayClass_interop_array.cpp
Normal file
@@ -0,0 +1,34 @@
|
||||
#include <Eigen/Dense>
|
||||
#include <iostream>
|
||||
|
||||
using namespace Eigen;
|
||||
using namespace std;
|
||||
|
||||
int main()
|
||||
{
|
||||
ArrayXXf m(2,2);
|
||||
ArrayXXf n(2,2);
|
||||
|
||||
ArrayXXf result(2,2);
|
||||
|
||||
//initialize arrays
|
||||
m << 1,2,
|
||||
3,4;
|
||||
|
||||
n << 5,6,
|
||||
7,8;
|
||||
|
||||
|
||||
// --> array multiplication
|
||||
result = m * n;
|
||||
|
||||
cout << "-- Array m*n: --" << endl
|
||||
<< result << endl << endl;
|
||||
|
||||
|
||||
// --> Matrix multiplication
|
||||
result = m.matrix() * n.matrix();
|
||||
|
||||
cout << "-- Matrix m*n: --" << endl
|
||||
<< result << endl << endl;
|
||||
}
|
||||
41
doc/examples/Tutorial_ArrayClass_interop_matrix.cpp
Normal file
41
doc/examples/Tutorial_ArrayClass_interop_matrix.cpp
Normal file
@@ -0,0 +1,41 @@
|
||||
#include <Eigen/Dense>
|
||||
#include <iostream>
|
||||
|
||||
using namespace Eigen;
|
||||
using namespace std;
|
||||
|
||||
int main()
|
||||
{
|
||||
MatrixXf m(2,2);
|
||||
MatrixXf n(2,2);
|
||||
|
||||
MatrixXf result(2,2);
|
||||
|
||||
//initialize matrices
|
||||
m << 1,2,
|
||||
3,4;
|
||||
|
||||
n << 5,6,
|
||||
7,8;
|
||||
|
||||
|
||||
// --> matrix multiplication
|
||||
result = m * n;
|
||||
|
||||
cout << "-- Matrix m*n: --" << endl
|
||||
<< result << endl << endl;
|
||||
|
||||
|
||||
// --> coeff-wise multiplication
|
||||
result = m.array() * n.array();
|
||||
|
||||
cout << "-- Array m*n: --" << endl
|
||||
<< result << endl << endl;
|
||||
|
||||
|
||||
// ->> coeff-wise addition of a scalar
|
||||
result = m.array() + 4;
|
||||
|
||||
cout << "-- Array m + 4: --" << endl
|
||||
<< result << endl << endl;
|
||||
}
|
||||
20
doc/examples/Tutorial_ArrayClass_mult.cpp
Normal file
20
doc/examples/Tutorial_ArrayClass_mult.cpp
Normal file
@@ -0,0 +1,20 @@
|
||||
#include <Eigen/Dense>
|
||||
#include <iostream>
|
||||
|
||||
using namespace Eigen;
|
||||
using namespace std;
|
||||
|
||||
int main()
|
||||
{
|
||||
ArrayXXf a(2,2);
|
||||
ArrayXXf b(2,2);
|
||||
|
||||
a << 1,2,
|
||||
3,4;
|
||||
|
||||
b << 5,6,
|
||||
7,8;
|
||||
|
||||
cout << "a * b = " << endl
|
||||
<< a * b << endl;
|
||||
}
|
||||
Reference in New Issue
Block a user