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 |
![]() | |
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 > | |
Matrix & | operator= (const MatrixBase< OtherDerived > &other) |
Matrix & | operator= (const Matrix &other) |
template<typename OtherDerived > | |
Matrix & | operator= (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 |
Matrix & | setConstant (int size, const Scalar &value) |
Matrix & | setConstant (int rows, int cols, const Scalar &value) |
Matrix & | setIdentity (int rows, int cols) |
Matrix & | setOnes (int size) |
Matrix & | setOnes (int rows, int cols) |
Matrix & | setRandom (int size) |
Matrix & | setRandom (int rows, int cols) |
Matrix & | setZero (int size) |
Matrix & | setZero (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 () | |
![]() | |
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 | |
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 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 | |
![]() | |
MatrixBase () | |
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:
_Scalar | Numeric type, i.e. float, double, int |
_Rows | Number of rows, or Dynamic |
_Cols | Number of columns, or Dynamic |
The remaining template parameters are optional – in most cases you don't have to worry about them.
_Options | A 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. |
_MaxRows | Maximum number of rows. Defaults to _Rows (note). |
_MaxCols | Maximum number of columns. Defaults to _Cols (note). |
Eigen provides a number of typedefs covering the usual cases. Here are some examples:
Matrix2d
is a 2x2 square matrix of doubles (Matrix<double, 2, 2>
) Vector4f
is a vector of 4 floats (Matrix<float, 4, 1>
) RowVector3i
is a row-vector of 3 ints (Matrix<int, 1, 3>
)MatrixXf
is a dynamic-size matrix of floats (Matrix<float, Dynamic, Dynamic>
) VectorXf
is a dynamic-size vector of floats (Matrix<float, Dynamic, 1>
)See this page for a complete list of predefined Matrix and Vector typedefs.
You can access elements of vectors and matrices using normal subscripting:
Some notes:
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 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.
|
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.
|
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.
|
inline |
This constructor has two very different behaviors, depending on the type of *this.
|
inline |
constructs an initialized 2D vector with given coefficients
|
inline |
constructs an initialized 2D vector with given coefficients
|
inline |
constructs an initialized 3D vector with given coefficients
|
inline |
constructs an initialized 4D vector with given coefficients
|
inlineexplicit |
Constructor copying an existing array of data. Only for fixed-size matrices and vectors.
data | The array of data to copy |
|
inline |
Constructor copying the value of the expression other
Copy constructor
|
inline |
Destructor
|
explicit |
This is defined in the Geometry module.
Constructs a Dim x Dim rotation matrix from the rotation r
|
inline |
|
inline |
Matrix<_Scalar, _Rows, _Cols, _Storage, _MaxRows, _MaxCols>& operator= | ( | const RotationBase< OtherDerived, ColsAtCompileTime > & | r) |
This is defined in the Geometry module.
Set a Dim x Dim rotation matrix from the rotation r
|
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.
|
inline |
This is a special case of the templated operator=. Its purpose is to prevent a default operator= from hiding the templated operator=.
|
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.
|
inline |
Resizes *this
to a vector of length size
|
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:
|
inline |
Resizes to the given size, and sets all coefficients in this expression to the given value.
rows | the new number of rows |
cols | the new number of columns |
Example:
Output:
|
inline |
Resizes to the given size, and writes the identity expression (not necessarily square) into *this.
rows | the new number of rows |
cols | the new number of columns |
Example:
Output:
|
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:
|
inline |
Resizes to the given size, and sets all coefficients in this expression to one.
rows | the new number of rows |
cols | the new number of columns |
Example:
Output:
|
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:
|
inline |
Resizes to the given size, and sets all coefficients in this expression to random values.
rows | the new number of rows |
cols | the new number of columns |
Example:
Output:
|
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:
|
inline |
Resizes to the given size, and sets all coefficients in this expression to zero.
rows | the new number of rows |
cols | the new number of columns |
Example:
Output:
|
inline |
Override MatrixBase::swap() since for dynamic-sized matrices of same type it is enough to swap the data pointers.