Eigen  3.4.90 (git rev 9589cc4e7fd8e4538bedef80dd36c7738977a8be)
 
Loading...
Searching...
No Matches
Eigen::Reshaped< XprType, Rows, Cols, Order > Class Template Reference

#include <Eigen/src/Core/Reshaped.h>

Detailed Description

template<typename XprType, int Rows = Dynamic, int Cols = Dynamic, int Order = 0>
class Eigen::Reshaped< XprType, Rows, Cols, Order >

Expression of a fixed-size or dynamic-size reshape.

Template Parameters
XprTypethe type of the expression in which we are taking a reshape
Rowsthe number of rows of the reshape we are taking at compile time (optional)
Colsthe number of columns of the reshape we are taking at compile time (optional)
Ordercan be ColMajor or RowMajor, default is ColMajor.

This class represents an expression of either a fixed-size or dynamic-size reshape. It is the return type of DenseBase::reshaped(NRowsType,NColsType) and most of the time this is the only way it is used.

If you want to directly manipulate reshaped expressions, for instance if you want to write a function returning such an expression, it is advised to use the auto keyword for such use cases.

Here is an example illustrating the dynamic case:

#include <Eigen/Core>
#include <iostream>
template <typename Derived>
const Eigen::Reshaped<const Derived> reshape_helper(const Eigen::MatrixBase<Derived>& m, int rows, int cols) {
return Eigen::Reshaped<const Derived>(m.derived(), rows, cols);
}
int main(int, char**) {
Eigen::MatrixXd m(3, 4);
m << 1, 4, 7, 10, 2, 5, 8, 11, 3, 6, 9, 12;
std::cout << m << std::endl;
Eigen::Ref<const Eigen::MatrixXd> n = reshape_helper(m, 2, 6);
std::cout << "Matrix m is:" << std::endl << m << std::endl;
std::cout << "Matrix n is:" << std::endl << n << std::endl;
}
Base class for all dense matrices, vectors, and expressions.
Definition ForwardDeclarations.h:73
A matrix or vector expression mapping an existing expression.
Definition ForwardDeclarations.h:164
Expression of a fixed-size or dynamic-size reshape.
Definition ForwardDeclarations.h:93
Matrix< double, Dynamic, Dynamic > MatrixXd
Dynamic×Dynamic matrix of type double.
Definition Matrix.h:479

Output:

 1  4  7 10
 2  5  8 11
 3  6  9 12
Matrix m is:
 1  4  7 10
 2  5  8 11
 3  6  9 12
Matrix n is:
 1  3  5  7  9 11
 2  4  6  8 10 12

Here is an example illustrating the fixed-size case:

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

Output:

matrix m is:
1 2 3 4
5 6 7 8
matrix n is:
1 3
5 7
2 4
6 8
See also
DenseBase::reshaped(NRowsType,NColsType)

Public Member Functions

 Reshaped (XprType &xpr)
 
 Reshaped (XprType &xpr, Index reshapeRows, Index reshapeCols)
 

Constructor & Destructor Documentation

◆ Reshaped() [1/2]

template<typename XprType, int Rows = Dynamic, int Cols = Dynamic, int Order = 0>
Eigen::Reshaped< XprType, Rows, Cols, Order >::Reshaped ( XprType & xpr)
inline

Fixed-size constructor

◆ Reshaped() [2/2]

template<typename XprType, int Rows = Dynamic, int Cols = Dynamic, int Order = 0>
Eigen::Reshaped< XprType, Rows, Cols, Order >::Reshaped ( XprType & xpr,
Index reshapeRows,
Index reshapeCols )
inline

Dynamic-size constructor


The documentation for this class was generated from the following files: