Public Types | Public Member Functions | Protected Attributes | List of all members
Matrix< _Scalar, _Rows, _Cols, _Options, _MaxRows, _MaxCols > Class Template Reference

The matrix class, also used for vectors and row-vectors. More...

Public Types

enum  { Options }
 
enum  { NeedsToAlign }
 
typedef class Eigen::Map
< Matrix, Aligned > 
AlignedMapType
 
typedef class Eigen::Map
< Matrix, Unaligned > 
UnalignedMapType
 
- Public Types inherited from MatrixBase< Matrix< _Scalar, _Rows, _Cols, _Options, _MaxRows, _MaxCols > >
enum  
 

Public Member Functions

Base & base ()
 
const Base & base () const
 
const Scalar & coeff (int row, int col) const
 
const Scalar & coeff (int index) const
 
Scalar & coeffRef (int row, int col)
 
Scalar & coeffRef (int index)
 
int cols () const
 
const Scalar * data () const
 
Scalar * data ()
 
 Matrix ()
 
 Matrix (int dim)
 
 Matrix (int x, int y)
 
 Matrix (const float &x, const float &y)
 
 Matrix (const double &x, const double &y)
 
 Matrix (const Scalar &x, const Scalar &y, const Scalar &z)
 
 Matrix (const Scalar &x, const Scalar &y, const Scalar &z, const Scalar &w)
 
 Matrix (const Scalar *data)
 
template<typename OtherDerived >
 Matrix (const MatrixBase< OtherDerived > &other)
 
 Matrix (const Matrix &other)
 
template<typename OtherDerived >
 Matrix (const RotationBase< OtherDerived, ColsAtCompileTime > &r)
 
template<typename OtherDerived >
Matrix< _Scalar, _Rows, _Cols,
_Storage, _MaxRows, _MaxCols > & 
operator= (const RotationBase< OtherDerived, ColsAtCompileTime > &r)
 
template<typename OtherDerived >
Matrixoperator= (const MatrixBase< OtherDerived > &other)
 
Matrixoperator= (const Matrix &other)
 
template<typename OtherDerived >
Matrixoperator= (const RotationBase< OtherDerived, ColsAtCompileTime > &r)
 
template<int LoadMode>
PacketScalar packet (int row, int col) const
 
template<int LoadMode>
PacketScalar packet (int index) const
 
void resize (int rows, int cols)
 
void resize (int size)
 
int rows () const
 
MatrixsetConstant (int size, const Scalar &value)
 
MatrixsetConstant (int rows, int cols, const Scalar &value)
 
MatrixsetIdentity (int rows, int cols)
 
MatrixsetOnes (int size)
 
MatrixsetOnes (int rows, int cols)
 
MatrixsetRandom (int size)
 
MatrixsetRandom (int rows, int cols)
 
MatrixsetZero (int size)
 
MatrixsetZero (int rows, int cols)
 
int stride (void) const
 
template<typename OtherDerived >
void swap (const MatrixBase< OtherDerived > &other)
 
template<int StoreMode>
void writePacket (int row, int col, const PacketScalar &x)
 
template<int StoreMode>
void writePacket (int index, const PacketScalar &x)
 
 ~Matrix ()
 
- Public Member Functions inherited from MatrixBase< Matrix< _Scalar, _Rows, _Cols, _Options, _MaxRows, _MaxCols > >
const AdjointReturnType adjoint () const
 
bool all (void) const
 
bool any (void) const
 
const DiagonalMatrix< Matrix
< _Scalar, _Rows, _Cols,
_Options, _MaxRows, _MaxCols > > 
asDiagonal () const
 
const CwiseBinaryOp
< CustomBinaryOp, Matrix
< _Scalar, _Rows, _Cols,
_Options, _MaxRows, _MaxCols >
, OtherDerived > 
binaryExpr (const MatrixBase< OtherDerived > &other, const CustomBinaryOp &func=CustomBinaryOp()) const
 
BlockReturnType< Matrix
< _Scalar, _Rows, _Cols,
_Options, _MaxRows, _MaxCols >
>::Type 
block (int startRow, int startCol, int blockRows, int blockCols)
 
const BlockReturnType< Matrix
< _Scalar, _Rows, _Cols,
_Options, _MaxRows, _MaxCols >
>::Type 
block (int startRow, int startCol, int blockRows, int blockCols) const
 
BlockReturnType< Matrix
< _Scalar, _Rows, _Cols,
_Options, _MaxRows, _MaxCols >
, BlockRows, BlockCols >::Type 
block (int startRow, int startCol)
 
const BlockReturnType< Matrix
< _Scalar, _Rows, _Cols,
_Options, _MaxRows, _MaxCols >
, BlockRows, BlockCols >::Type 
block (int startRow, int startCol) const
 
const CwiseUnaryOp
< ei_scalar_cast_op< typename
ei_traits< Matrix< _Scalar,
_Rows, _Cols, _Options,
_MaxRows, _MaxCols > >::Scalar,
NewType >, Matrix< _Scalar,
_Rows, _Cols, _Options,
_MaxRows, _MaxCols > > 
cast () const
 
const Scalar coeff (int row, int col) const
 
const Scalar coeff (int index) const
 
Scalar & coeffRef (int row, int col)
 
Scalar & coeffRef (int index)
 
ColXpr col (int i)
 
const ColXpr col (int i) const
 
int cols () const
 
const PartialRedux< Matrix
< _Scalar, _Rows, _Cols,
_Options, _MaxRows, _MaxCols >
, Vertical > 
colwise () const
 
void computeInverse (MatrixBase< ResultType > *result) const
 
ConjugateReturnType conjugate () const
 
BlockReturnType< Matrix
< _Scalar, _Rows, _Cols,
_Options, _MaxRows, _MaxCols >
>::Type 
corner (CornerType type, int cRows, int cCols)
 
const BlockReturnType< Matrix
< _Scalar, _Rows, _Cols,
_Options, _MaxRows, _MaxCols >
>::Type 
corner (CornerType type, int cRows, int cCols) const
 
BlockReturnType< Matrix
< _Scalar, _Rows, _Cols,
_Options, _MaxRows, _MaxCols >
, CRows, CCols >::Type 
corner (CornerType type)
 
const BlockReturnType< Matrix
< _Scalar, _Rows, _Cols,
_Options, _MaxRows, _MaxCols >
, CRows, CCols >::Type 
corner (CornerType type) const
 
int count () const
 
PlainMatrixType cross (const MatrixBase< OtherDerived > &other) const
 
const Cwise< Matrix< _Scalar,
_Rows, _Cols, _Options,
_MaxRows, _MaxCols > > 
cwise () const
 
Cwise< Matrix< _Scalar, _Rows,
_Cols, _Options, _MaxRows,
_MaxCols > > 
cwise ()
 
Scalar determinant () const
 
DiagonalCoeffs< Matrix
< _Scalar, _Rows, _Cols,
_Options, _MaxRows, _MaxCols > > 
diagonal ()
 
const DiagonalCoeffs< Matrix
< _Scalar, _Rows, _Cols,
_Options, _MaxRows, _MaxCols > > 
diagonal () const
 
Scalar dot (const MatrixBase< OtherDerived > &other) const
 
EigenvaluesReturnType eigenvalues () const
 
BlockReturnType< Matrix
< _Scalar, _Rows, _Cols,
_Options, _MaxRows, _MaxCols >
, Dynamic >::SubVectorType 
end (int size)
 
const BlockReturnType< Matrix
< _Scalar, _Rows, _Cols,
_Options, _MaxRows, _MaxCols >
, Dynamic >::SubVectorType 
end (int size) const
 
BlockReturnType< Matrix
< _Scalar, _Rows, _Cols,
_Options, _MaxRows, _MaxCols >
, Size >::SubVectorType 
end ()
 
const BlockReturnType< Matrix
< _Scalar, _Rows, _Cols,
_Options, _MaxRows, _MaxCols >
, Size >::SubVectorType 
end () const
 
Matrix< Scalar, 3, 1 > eulerAngles (int a0, int a1, int a2) const
 
const ei_eval< Matrix< _Scalar,
_Rows, _Cols, _Options,
_MaxRows, _MaxCols > >::type 
eval () const
 
void fill (const Scalar &value)
 
const WithFormat< Matrix
< _Scalar, _Rows, _Cols,
_Options, _MaxRows, _MaxCols > > 
format (const IOFormat &fmt) const
 
const ImagReturnType imag () const
 
int innerSize () const
 
const PlainMatrixType inverse () const
 
bool isApprox (const MatrixBase< OtherDerived > &other, RealScalar prec=precision< Scalar >()) const
 
bool isApproxToConstant (const Scalar &value, RealScalar prec=precision< Scalar >()) const
 
bool isConstant (const Scalar &value, RealScalar prec=precision< Scalar >()) const
 
bool isDiagonal (RealScalar prec=precision< Scalar >()) const
 
bool isIdentity (RealScalar prec=precision< Scalar >()) const
 
bool isLowerTriangular (RealScalar prec=precision< Scalar >()) const
 
bool isMuchSmallerThan (const RealScalar &other, RealScalar prec=precision< Scalar >()) const
 
bool isMuchSmallerThan (const MatrixBase< OtherDerived > &other, RealScalar prec=precision< Scalar >()) const
 
bool isOnes (RealScalar prec=precision< Scalar >()) const
 
bool isOrthogonal (const MatrixBase< OtherDerived > &other, RealScalar prec=precision< Scalar >()) const
 
bool isUnitary (RealScalar prec=precision< Scalar >()) const
 
bool isUpperTriangular (RealScalar prec=precision< Scalar >()) const
 
bool isVector () const
 
bool isZero (RealScalar prec=precision< Scalar >()) const
 
const Flagged< Matrix< _Scalar,
_Rows, _Cols, _Options,
_MaxRows, _MaxCols >
, 0, EvalBeforeNestingBit|EvalBeforeAssigningBit > 
lazy () const
 
Matrix< _Scalar, _Rows, _Cols,
_Options, _MaxRows, _MaxCols > & 
lazyAssign (const SparseProduct< Derived1, Derived2, SparseTimeDenseProduct > &product)
 
Matrix< _Scalar, _Rows, _Cols,
_Options, _MaxRows, _MaxCols > & 
lazyAssign (const SparseProduct< Derived1, Derived2, DenseTimeSparseProduct > &product)
 
const LDLT< PlainMatrixType > ldlt () const
 
const LLT< PlainMatrixType > llt () const
 
RealScalar lpNorm () const
 
const LU< PlainMatrixType > lu () const
 
const Flagged< Matrix< _Scalar,
_Rows, _Cols, _Options,
_MaxRows, _MaxCols >, Added, 0 > 
marked () const
 
ei_traits< Matrix< _Scalar,
_Rows, _Cols, _Options,
_MaxRows, _MaxCols > >::Scalar 
maxCoeff () const
 
ei_traits< Matrix< _Scalar,
_Rows, _Cols, _Options,
_MaxRows, _MaxCols > >::Scalar 
maxCoeff (int *row, int *col) const
 
ei_traits< Matrix< _Scalar,
_Rows, _Cols, _Options,
_MaxRows, _MaxCols > >::Scalar 
maxCoeff (int *index) const
 
ei_traits< Matrix< _Scalar,
_Rows, _Cols, _Options,
_MaxRows, _MaxCols > >::Scalar 
minCoeff () const
 
ei_traits< Matrix< _Scalar,
_Rows, _Cols, _Options,
_MaxRows, _MaxCols > >::Scalar 
minCoeff (int *row, int *col) const
 
ei_traits< Matrix< _Scalar,
_Rows, _Cols, _Options,
_MaxRows, _MaxCols > >::Scalar 
minCoeff (int *index) const
 
Minor< Matrix< _Scalar, _Rows,
_Cols, _Options, _MaxRows,
_MaxCols > > 
minor (int row, int col)
 
const Minor< Matrix< _Scalar,
_Rows, _Cols, _Options,
_MaxRows, _MaxCols > > 
minor (int row, int col) const
 
const NestByValue< Matrix
< _Scalar, _Rows, _Cols,
_Options, _MaxRows, _MaxCols > > 
nestByValue () const
 
int nonZeros () const
 
RealScalar norm () const
 
void normalize ()
 
const PlainMatrixType normalized () const
 
bool operator!= (const MatrixBase< OtherDerived > &other) const
 
const Scalar operator() (int row, int col) const
 
Scalar & operator() (int row, int col)
 
const Scalar operator() (int index) const
 
Scalar & operator() (int index)
 
const ScalarMultipleReturnType operator* (const Scalar &scalar) const
 
const ProductReturnType
< Matrix< _Scalar, _Rows,
_Cols, _Options, _MaxRows,
_MaxCols >, OtherDerived >
::Type 
operator* (const MatrixBase< OtherDerived > &other) const
 
Matrix< _Scalar, _Rows, _Cols,
_Options, _MaxRows, _MaxCols > & 
operator*= (const Scalar &other)
 
Matrix< _Scalar, _Rows, _Cols,
_Options, _MaxRows, _MaxCols > & 
operator*= (const MatrixBase< OtherDerived > &other)
 
const CwiseBinaryOp
< ei_scalar_sum_op< typename
ei_traits< Matrix< _Scalar,
_Rows, _Cols, _Options,
_MaxRows, _MaxCols > >::Scalar >
, Matrix< _Scalar, _Rows,
_Cols, _Options, _MaxRows,
_MaxCols >, OtherDerived > 
operator+ (const MatrixBase< OtherDerived > &other) const
 
Matrix< _Scalar, _Rows, _Cols,
_Options, _MaxRows, _MaxCols > & 
operator+= (const MatrixBase< OtherDerived > &other)
 
Matrix< _Scalar, _Rows, _Cols,
_Options, _MaxRows, _MaxCols > & 
operator+= (const Flagged< Product< Lhs, Rhs, CacheFriendlyProduct >, 0, EvalBeforeNestingBit|EvalBeforeAssigningBit > &other)
 
const CwiseUnaryOp
< ei_scalar_opposite_op
< typename ei_traits< Matrix
< _Scalar, _Rows, _Cols,
_Options, _MaxRows, _MaxCols >
>::Scalar >, Matrix< _Scalar,
_Rows, _Cols, _Options,
_MaxRows, _MaxCols > > 
operator- () const
 
const CwiseBinaryOp
< ei_scalar_difference_op
< typename ei_traits< Matrix
< _Scalar, _Rows, _Cols,
_Options, _MaxRows, _MaxCols >
>::Scalar >, Matrix< _Scalar,
_Rows, _Cols, _Options,
_MaxRows, _MaxCols >
, OtherDerived > 
operator- (const MatrixBase< OtherDerived > &other) const
 
Matrix< _Scalar, _Rows, _Cols,
_Options, _MaxRows, _MaxCols > & 
operator-= (const MatrixBase< OtherDerived > &other)
 
const CwiseUnaryOp
< ei_scalar_quotient1_op
< typename ei_traits< Matrix
< _Scalar, _Rows, _Cols,
_Options, _MaxRows, _MaxCols >
>::Scalar >, Matrix< _Scalar,
_Rows, _Cols, _Options,
_MaxRows, _MaxCols > > 
operator/ (const Scalar &scalar) const
 
Matrix< _Scalar, _Rows, _Cols,
_Options, _MaxRows, _MaxCols > & 
operator/= (const Scalar &other)
 
CommaInitializer< Matrix
< _Scalar, _Rows, _Cols,
_Options, _MaxRows, _MaxCols > > 
operator<< (const Scalar &s)
 
CommaInitializer< Matrix
< _Scalar, _Rows, _Cols,
_Options, _MaxRows, _MaxCols > > 
operator<< (const MatrixBase< OtherDerived > &other)
 
Matrix< _Scalar, _Rows, _Cols,
_Options, _MaxRows, _MaxCols > & 
operator= (const MatrixBase< OtherDerived > &other)
 
Matrix< _Scalar, _Rows, _Cols,
_Options, _MaxRows, _MaxCols > & 
operator= (const MatrixBase &other)
 
bool operator== (const MatrixBase< OtherDerived > &other) const
 
const Scalar operator[] (int index) const
 
Scalar & operator[] (int index)
 
RealScalar operatorNorm () const
 
int outerSize () const
 
PacketScalar packet (int row, int col) const
 
PacketScalar packet (int index) const
 
Part< Matrix< _Scalar, _Rows,
_Cols, _Options, _MaxRows,
_MaxCols >, Mode > 
part ()
 
const Part< Matrix< _Scalar,
_Rows, _Cols, _Options,
_MaxRows, _MaxCols >, Mode > 
part () const
 
const QR< PlainMatrixType > qr () const
 
const RealReturnType real () const
 
ei_result_of< BinaryOp(typename
ei_traits< Matrix< _Scalar,
_Rows, _Cols, _Options,
_MaxRows, _MaxCols > >::Scalar)>
::type 
redux (const BinaryOp &func) const
 
RowXpr row (int i)
 
const RowXpr row (int i) const
 
int rows () const
 
const PartialRedux< Matrix
< _Scalar, _Rows, _Cols,
_Options, _MaxRows, _MaxCols >
, Horizontal > 
rowwise () const
 
BlockReturnType< Matrix
< _Scalar, _Rows, _Cols,
_Options, _MaxRows, _MaxCols >
>::SubVectorType 
segment (int start, int size)
 
const BlockReturnType< Matrix
< _Scalar, _Rows, _Cols,
_Options, _MaxRows, _MaxCols >
>::SubVectorType 
segment (int start, int size) const
 
BlockReturnType< Matrix
< _Scalar, _Rows, _Cols,
_Options, _MaxRows, _MaxCols >
, Size >::SubVectorType 
segment (int start)
 
const BlockReturnType< Matrix
< _Scalar, _Rows, _Cols,
_Options, _MaxRows, _MaxCols >
, Size >::SubVectorType 
segment (int start) const
 
const Select< Matrix< _Scalar,
_Rows, _Cols, _Options,
_MaxRows, _MaxCols >
, ThenDerived, ElseDerived > 
select (const MatrixBase< ThenDerived > &thenMatrix, const MatrixBase< ElseDerived > &elseMatrix) const
 
const Select< Matrix< _Scalar,
_Rows, _Cols, _Options,
_MaxRows, _MaxCols >
, ThenDerived, NestByValue
< typename
ThenDerived::ConstantReturnType > > 
select (const MatrixBase< ThenDerived > &thenMatrix, typename ThenDerived::Scalar elseScalar) const
 
const Select< Matrix< _Scalar,
_Rows, _Cols, _Options,
_MaxRows, _MaxCols >
, NestByValue< typename
ElseDerived::ConstantReturnType >
, ElseDerived > 
select (typename ElseDerived::Scalar thenScalar, const MatrixBase< ElseDerived > &elseMatrix) const
 
Matrix< _Scalar, _Rows, _Cols,
_Options, _MaxRows, _MaxCols > & 
setConstant (const Scalar &value)
 
Matrix< _Scalar, _Rows, _Cols,
_Options, _MaxRows, _MaxCols > & 
setIdentity ()
 
Matrix< _Scalar, _Rows, _Cols,
_Options, _MaxRows, _MaxCols > & 
setOnes ()
 
Matrix< _Scalar, _Rows, _Cols,
_Options, _MaxRows, _MaxCols > & 
setRandom ()
 
Matrix< _Scalar, _Rows, _Cols,
_Options, _MaxRows, _MaxCols > & 
setZero ()
 
int size () const
 
ei_plain_matrix_type_column_major
< OtherDerived >::type 
solveTriangular (const MatrixBase< OtherDerived > &other) const
 
void solveTriangularInPlace (const MatrixBase< OtherDerived > &other) const
 
RealScalar squaredNorm () const
 
BlockReturnType< Matrix
< _Scalar, _Rows, _Cols,
_Options, _MaxRows, _MaxCols >
, Dynamic >::SubVectorType 
start (int size)
 
const BlockReturnType< Matrix
< _Scalar, _Rows, _Cols,
_Options, _MaxRows, _MaxCols >
, Dynamic >::SubVectorType 
start (int size) const
 
BlockReturnType< Matrix
< _Scalar, _Rows, _Cols,
_Options, _MaxRows, _MaxCols >
, Size >::SubVectorType 
start (void)
 
const BlockReturnType< Matrix
< _Scalar, _Rows, _Cols,
_Options, _MaxRows, _MaxCols >
, Size >::SubVectorType 
start () const
 
int stride (void) const
 
Scalar sum () const
 
SVD< PlainMatrixType > svd () const
 
void swap (const MatrixBase< OtherDerived > &other)
 
Scalar trace () const
 
Eigen::Transpose< Matrix
< _Scalar, _Rows, _Cols,
_Options, _MaxRows, _MaxCols > > 
transpose ()
 
const Eigen::Transpose< Matrix
< _Scalar, _Rows, _Cols,
_Options, _MaxRows, _MaxCols > > 
transpose () const
 
void transposeInPlace ()
 
const CwiseUnaryOp
< CustomUnaryOp, Matrix
< _Scalar, _Rows, _Cols,
_Options, _MaxRows, _MaxCols > > 
unaryExpr (const CustomUnaryOp &func=CustomUnaryOp()) const
 
PlainMatrixType unitOrthogonal (void) const
 
void visit (Visitor &func) const
 
const Scalar w () const
 
Scalar & w ()
 
void writePacket (int row, int col, const PacketScalar &x)
 
void writePacket (int index, const PacketScalar &x)
 
const Scalar x () const
 
Scalar & x ()
 
const Scalar y () const
 
Scalar & y ()
 
const Scalar z () const
 
Scalar & z ()
 

Static Public Member Functions

Map

These are convenience functions returning Map objects.

Warning
Do not use MapAligned in the Eigen 2.0. Mapping aligned arrays will be fully supported in Eigen 3.0 (already implemented in the development branch)
See Also
class Map
static const UnalignedMapType Map (const Scalar *data)
 
static UnalignedMapType Map (Scalar *data)
 
static const UnalignedMapType Map (const Scalar *data, int size)
 
static UnalignedMapType Map (Scalar *data, int size)
 
static const UnalignedMapType Map (const Scalar *data, int rows, int cols)
 
static UnalignedMapType Map (Scalar *data, int rows, int cols)
 
static const AlignedMapType MapAligned (const Scalar *data)
 
static AlignedMapType MapAligned (Scalar *data)
 
static const AlignedMapType MapAligned (const Scalar *data, int size)
 
static AlignedMapType MapAligned (Scalar *data, int size)
 
static const AlignedMapType MapAligned (const Scalar *data, int rows, int cols)
 
static AlignedMapType MapAligned (Scalar *data, int rows, int cols)
 
- Static Public Member Functions inherited from MatrixBase< Matrix< _Scalar, _Rows, _Cols, _Options, _MaxRows, _MaxCols > >
static const ConstantReturnType Constant (int rows, int cols, const Scalar &value)
 
static const ConstantReturnType Constant (int size, const Scalar &value)
 
static const ConstantReturnType Constant (const Scalar &value)
 
static const IdentityReturnType Identity ()
 
static const IdentityReturnType Identity (int rows, int cols)
 
static const CwiseNullaryOp
< CustomNullaryOp, Matrix
< _Scalar, _Rows, _Cols,
_Options, _MaxRows, _MaxCols > > 
NullaryExpr (int rows, int cols, const CustomNullaryOp &func)
 
static const CwiseNullaryOp
< CustomNullaryOp, Matrix
< _Scalar, _Rows, _Cols,
_Options, _MaxRows, _MaxCols > > 
NullaryExpr (int size, const CustomNullaryOp &func)
 
static const CwiseNullaryOp
< CustomNullaryOp, Matrix
< _Scalar, _Rows, _Cols,
_Options, _MaxRows, _MaxCols > > 
NullaryExpr (const CustomNullaryOp &func)
 
static const ConstantReturnType Ones (int rows, int cols)
 
static const ConstantReturnType Ones (int size)
 
static const ConstantReturnType Ones ()
 
static const CwiseNullaryOp
< ei_scalar_random_op< Scalar >
, Matrix< _Scalar, _Rows,
_Cols, _Options, _MaxRows,
_MaxCols > > 
Random (int rows, int cols)
 
static const CwiseNullaryOp
< ei_scalar_random_op< Scalar >
, Matrix< _Scalar, _Rows,
_Cols, _Options, _MaxRows,
_MaxCols > > 
Random (int size)
 
static const CwiseNullaryOp
< ei_scalar_random_op< Scalar >
, Matrix< _Scalar, _Rows,
_Cols, _Options, _MaxRows,
_MaxCols > > 
Random ()
 
static const BasisReturnType Unit (int size, int i)
 
static const BasisReturnType Unit (int i)
 
static const BasisReturnType UnitW ()
 
static const BasisReturnType UnitX ()
 
static const BasisReturnType UnitY ()
 
static const BasisReturnType UnitZ ()
 
static const ConstantReturnType Zero (int rows, int cols)
 
static const ConstantReturnType Zero (int size)
 
static const ConstantReturnType Zero ()
 

Protected Attributes

ei_matrix_storage< Scalar,
MaxSizeAtCompileTime,
RowsAtCompileTime,
ColsAtCompileTime, Options > 
m_storage
 

Additional Inherited Members

- Protected Member Functions inherited from MatrixBase< Matrix< _Scalar, _Rows, _Cols, _Options, _MaxRows, _MaxCols > >
 MatrixBase ()
 

Detailed Description

template<typename _Scalar, int _Rows, int _Cols, int _Options = EIGEN_DEFAULT_MATRIX_STORAGE_ORDER_OPTION | AutoAlign, int _MaxRows = _Rows, int _MaxCols = _Cols>
class Eigen::Matrix< _Scalar, _Rows, _Cols, _Options, _MaxRows, _MaxCols >

The matrix class, also used for vectors and row-vectors.

The Matrix class is the work-horse for all dense (note) matrices and vectors within Eigen. Vectors are matrices with one column, and row-vectors are matrices with one row.

The Matrix class encompasses both fixed-size and dynamic-size objects (note).

The first three template parameters are required:

Parameters
_ScalarNumeric type, i.e. float, double, int
_RowsNumber of rows, or Dynamic
_ColsNumber of columns, or Dynamic

The remaining template parameters are optional – in most cases you don't have to worry about them.

Parameters
_OptionsA combination of either RowMajor or ColMajor, and of either AutoAlign or DontAlign. The former controls storage order, and defaults to column-major. The latter controls alignment, which is required for vectorization. It defaults to aligning matrices except for fixed sizes that aren't a multiple of the packet size.
_MaxRowsMaximum number of rows. Defaults to _Rows (note).
_MaxColsMaximum number of columns. Defaults to _Cols (note).

Eigen provides a number of typedefs covering the usual cases. Here are some examples:

See this page for a complete list of predefined Matrix and Vector typedefs.

You can access elements of vectors and matrices using normal subscripting:

v[0] = 0.1;
v[1] = 0.2;
v(0) = 0.3;
v(1) = 0.4;
Eigen::MatrixXi m(10, 10);
m(0, 1) = 1;
m(0, 2) = 2;
m(0, 3) = 3;

Some notes:

Dense versus sparse:

This Matrix class handles dense, not sparse matrices and vectors. For sparse matrices and vectors, see the Sparse module.

Dense matrices and vectors are plain usual arrays of coefficients. All the coefficients are stored, in an ordinary contiguous array. This is unlike Sparse matrices and vectors where the coefficients are stored as a list of nonzero coefficients.

Fixed-size versus dynamic-size:

Fixed-size means that the numbers of rows and columns are known are compile-time. In this case, Eigen allocates the array of coefficients as a fixed-size array, as a class member. This makes sense for very small matrices, typically up to 4x4, sometimes up to 16x16. Larger matrices should be declared as dynamic-size even if one happens to know their size at compile-time.

Dynamic-size means that the numbers of rows or columns are not necessarily known at compile-time. In this case they are runtime variables, and the array of coefficients is allocated dynamically on the heap.

Note that dense matrices, be they Fixed-size or Dynamic-size, do not expand dynamically in the sense of a std::map. If you want this behavior, see the Sparse module.

_MaxRows and _MaxCols:
In most cases, one just leaves these parameters to the default values. These parameters mean the maximum size of rows and columns that the matrix may have. They are useful in cases when the exact numbers of rows and columns are not known are compile-time, but it is known at compile-time that they cannot exceed a certain value. This happens when taking dynamic-size blocks inside fixed-size matrices: in this case _MaxRows and _MaxCols are the dimensions of the original matrix, while _Rows and _Cols are Dynamic.
See Also
MatrixBase for the majority of the API methods for matrices

Constructor & Destructor Documentation

Matrix ( )
inlineexplicit

Default constructor.

For fixed-size matrices, does nothing.

For dynamic-size matrices, creates an empty matrix of size 0. Does not allocate any array. Such a matrix is called a null matrix. This constructor is the unique way to create null matrices: resizing a matrix to 0 is not supported.

See Also
resize(int,int)
Matrix ( int  dim)
inlineexplicit

Constructs a vector or row-vector with given dimension. This is only for vectors (either row-vectors or column-vectors), i.e. matrices which are known at compile-time to have either one row or one column.

Note that this is only useful for dynamic-size vectors. For fixed-size vectors, it is redundant to pass the dimension here, so it makes more sense to use the default constructor Matrix() instead.

Matrix ( int  x,
int  y 
)
inline

This constructor has two very different behaviors, depending on the type of *this.

  • When Matrix is a fixed-size vector type of size 2, this constructor constructs an initialized vector. The parameters x, y are copied into the first and second coords of the vector respectively.
  • Otherwise, this constructor constructs an uninitialized matrix with x rows and y columns. This is useful for dynamic-size matrices. For fixed-size matrices, it is redundant to pass these parameters, so one should use the default constructor Matrix() instead.
Matrix ( const float &  x,
const float &  y 
)
inline

constructs an initialized 2D vector with given coefficients

Matrix ( const double &  x,
const double &  y 
)
inline

constructs an initialized 2D vector with given coefficients

Matrix ( const Scalar &  x,
const Scalar &  y,
const Scalar &  z 
)
inline

constructs an initialized 3D vector with given coefficients

Matrix ( const Scalar &  x,
const Scalar &  y,
const Scalar &  z,
const Scalar &  w 
)
inline

constructs an initialized 4D vector with given coefficients

Matrix ( const Scalar *  data)
inlineexplicit

Constructor copying an existing array of data. Only for fixed-size matrices and vectors.

Parameters
dataThe array of data to copy
See Also
Matrix::Map(const Scalar *)
Matrix ( const MatrixBase< OtherDerived > &  other)
inline

Constructor copying the value of the expression other

Matrix ( const Matrix< _Scalar, _Rows, _Cols, _Options, _MaxRows, _MaxCols > &  other)
inline

Copy constructor

~Matrix ( )
inline

Destructor

Matrix ( const RotationBase< OtherDerived, ColsAtCompileTime > &  r)
explicit

This is defined in the Geometry module.

#include <Eigen/Geometry>

Constructs a Dim x Dim rotation matrix from the rotation r

Member Function Documentation

const Scalar* data ( ) const
inline
Returns
a const pointer to the data array of this matrix
Scalar* data ( )
inline
Returns
a pointer to the data array of this matrix
Matrix<_Scalar, _Rows, _Cols, _Storage, _MaxRows, _MaxCols>& operator= ( const RotationBase< OtherDerived, ColsAtCompileTime > &  r)

This is defined in the Geometry module.

#include <Eigen/Geometry>

Set a Dim x Dim rotation matrix from the rotation r

Matrix& operator= ( const MatrixBase< OtherDerived > &  other)
inline

Copies the value of the expression other into *this with automatic resizing.

*this might be resized to match the dimensions of other. If *this was a null matrix (not already initialized), it will be initialized.

Note that copying a row-vector into a vector (and conversely) is allowed. The resizing, if any, is then done in the appropriate way so that row-vectors remain row-vectors and vectors remain vectors.

Matrix& operator= ( const Matrix< _Scalar, _Rows, _Cols, _Options, _MaxRows, _MaxCols > &  other)
inline

This is a special case of the templated operator=. Its purpose is to prevent a default operator= from hiding the templated operator=.

void resize ( int  rows,
int  cols 
)
inline

Resizes *this to a rows x cols matrix.

Makes sense for dynamic-size matrices only.

If the current number of coefficients of *this exactly matches the product rows * cols, then no memory allocation is performed and the current values are left unchanged. In all other cases, including shrinking, the data is reallocated and all previous values are lost.

See Also
resize(int) for vectors.
void resize ( int  size)
inline

Resizes *this to a vector of length size

See Also
resize(int,int) for the details.
Matrix< _Scalar, _Rows, _Cols, _Options, _MaxRows, _MaxCols > & setConstant ( int  size,
const Scalar &  value 
)
inline

Resizes to the given size, and sets all coefficients in this expression to the given value.

This is only for vectors (either row-vectors or column-vectors), i.e. matrices which are known at compile-time to have either one row or one column.

Example:

Output:

See Also
MatrixBase::setConstant(const Scalar&), setConstant(int,int,const Scalar&), class CwiseNullaryOp, MatrixBase::Constant(const Scalar&)
Matrix< _Scalar, _Rows, _Cols, _Options, _MaxRows, _MaxCols > & setConstant ( int  rows,
int  cols,
const Scalar &  value 
)
inline

Resizes to the given size, and sets all coefficients in this expression to the given value.

Parameters
rowsthe new number of rows
colsthe new number of columns

Example:

Output:

See Also
MatrixBase::setConstant(const Scalar&), setConstant(int,const Scalar&), class CwiseNullaryOp, MatrixBase::Constant(const Scalar&)
Matrix< _Scalar, _Rows, _Cols, _Options, _MaxRows, _MaxCols > & setIdentity ( int  rows,
int  cols 
)
inline

Resizes to the given size, and writes the identity expression (not necessarily square) into *this.

Parameters
rowsthe new number of rows
colsthe new number of columns

Example:

Output:

See Also
MatrixBase::setIdentity(), class CwiseNullaryOp, MatrixBase::Identity()
Matrix< _Scalar, _Rows, _Cols, _Options, _MaxRows, _MaxCols > & setOnes ( int  size)
inline

Resizes to the given size, and sets all coefficients in this expression to one.

This is only for vectors (either row-vectors or column-vectors), i.e. matrices which are known at compile-time to have either one row or one column.

Example:

Output:

See Also
MatrixBase::setOnes(), setOnes(int,int), class CwiseNullaryOp, MatrixBase::Ones()
Matrix< _Scalar, _Rows, _Cols, _Options, _MaxRows, _MaxCols > & setOnes ( int  rows,
int  cols 
)
inline

Resizes to the given size, and sets all coefficients in this expression to one.

Parameters
rowsthe new number of rows
colsthe new number of columns

Example:

Output:

See Also
MatrixBase::setOnes(), setOnes(int), class CwiseNullaryOp, MatrixBase::Ones()
Matrix< _Scalar, _Rows, _Cols, _Options, _MaxRows, _MaxCols > & setRandom ( int  size)
inline

Resizes to the given size, and sets all coefficients in this expression to random values.

This is only for vectors (either row-vectors or column-vectors), i.e. matrices which are known at compile-time to have either one row or one column.

Example:

Output:

See Also
MatrixBase::setRandom(), setRandom(int,int), class CwiseNullaryOp, MatrixBase::Random()
Matrix< _Scalar, _Rows, _Cols, _Options, _MaxRows, _MaxCols > & setRandom ( int  rows,
int  cols 
)
inline

Resizes to the given size, and sets all coefficients in this expression to random values.

Parameters
rowsthe new number of rows
colsthe new number of columns

Example:

Output:

See Also
MatrixBase::setRandom(), setRandom(int), class CwiseNullaryOp, MatrixBase::Random()
Matrix< _Scalar, _Rows, _Cols, _Options, _MaxRows, _MaxCols > & setZero ( int  size)
inline

Resizes to the given size, and sets all coefficients in this expression to zero.

This is only for vectors (either row-vectors or column-vectors), i.e. matrices which are known at compile-time to have either one row or one column.

Example:

Output:

See Also
MatrixBase::setZero(), setZero(int,int), class CwiseNullaryOp, MatrixBase::Zero()
Matrix< _Scalar, _Rows, _Cols, _Options, _MaxRows, _MaxCols > & setZero ( int  rows,
int  cols 
)
inline

Resizes to the given size, and sets all coefficients in this expression to zero.

Parameters
rowsthe new number of rows
colsthe new number of columns

Example:

Output:

See Also
MatrixBase::setZero(), setZero(int), class CwiseNullaryOp, MatrixBase::Zero()
void swap ( const MatrixBase< OtherDerived > &  other)
inline

Override MatrixBase::swap() since for dynamic-sized matrices of same type it is enough to swap the data pointers.


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