import yoco xiao's work on reshape

This commit is contained in:
Gael Guennebaud
2017-01-29 14:29:31 +01:00
10 changed files with 566 additions and 0 deletions

View File

@@ -0,0 +1,22 @@
#include <Eigen/Core>
#include <iostream>
using namespace Eigen;
using namespace std;
template<typename Derived>
Eigen::Reshape<Derived, 4, 2>
reshape_helper(MatrixBase<Derived>& m)
{
return Eigen::Reshape<Derived, 4, 2>(m.derived());
}
int main(int, char**)
{
MatrixXd m(2, 4);
m << 1, 2, 3, 4,
5, 6, 7, 8;
MatrixXd n = reshape_helper(m);
cout << "matrix m is:" << endl << m << endl;
cout << "matrix n is:" << endl << n << endl;
return 0;
}

View File

@@ -0,0 +1,23 @@
#include <Eigen/Core>
#include <iostream>
using namespace std;
using namespace Eigen;
template<typename Derived>
const Reshape<const Derived>
reshape_helper(const MatrixBase<Derived>& m, int rows, int cols)
{
return Reshape<const Derived>(m.derived(), rows, cols);
}
int main(int, char**)
{
MatrixXd m(3, 4);
m << 1, 4, 7, 10,
2, 5, 8, 11,
3, 6, 9, 12;
cout << m << endl;
auto n = reshape_helper(m, 2, 6);
cout << "Matrix m is:" << endl << m << endl;
cout << "Matrix n is:" << endl << n << endl;
}

View File

@@ -0,0 +1,3 @@
Matrix4i m = Matrix4i::Random();
cout << "Here is the matrix m:" << endl << m << endl;
cout << "Here is m.reshape<2,8>():" << endl << m.reshape<2,8>() << endl;

View File

@@ -0,0 +1,3 @@
Matrix4i m = Matrix4i::Random();
cout << "Here is the matrix m:" << endl << m << endl;
cout << "Here is m.reshape(2, 8):" << endl << m.reshape(2, 8) << endl;