Eigen::Matrix
template<typename _Scalar, int _Rows, int _Cols, int _Options, int _MaxRows, int _MaxCols>
class Eigen::Matrix< _Scalar, _Rows, _Cols, _Options, _MaxRows, _MaxCols >
Класс матриц, также используемый для векторов и строковых векторов.
Класс Matrix является основным классом для всех плотных (примечание) матриц и векторов в библиотеке Eigen. Векторы являются матрицами с одним столбцом, а строковые векторы — матрицами с одной строкой.
Класс Matrix охватывает как объекты фиксированного размера, так и объекты динамического размера (примечание).
Первые три параметра шаблона обязательны:
- Параметры шаблона
-
_Scalar Числовой тип, например, float, double, int или std::complex<float>. Поддерживаются также пользовательские типы скаляров (см. здесь). _Rows Количество строк или Dynamic _Cols Количество столбцов или Dynamic
Остальные параметры шаблона являются необязательными — в большинстве случаев вам не нужно беспокоиться о них.
- Параметры шаблона
-
_Options Сочетание RowMajor или ColMajor, и AutoAlign или DontAlign. Первый параметр управляет порядком хранения и по умолчанию равен column-major. Последний параметр управляет выравниванием, которое необходимо для векторизации. По умолчанию матрицы выравниваются, за исключением фиксированных размеров, которые не кратны размеру пакета. _MaxRows Максимальное количество строк. По умолчанию равно _Rows (примечание). _MaxCols Максимальное количество столбцов. По умолчанию равно _Cols (примечание).
Eigen предоставляет несколько псевдонимов типов, охватывающих обычные случаи. Вот несколько примеров:
-
Matrix2d— это квадратная матрица 2x2 с типом double (Matrix<double, 2, 2>) -
Vector4f— это вектор из 4 чисел с плавающей точкой (Matrix<float, 4, 1>) -
RowVector3i— это строковый вектор из 3 целых чисел (Matrix<int, 1, 3>)
-
MatrixXf— это матрица динамического размера с типом float (Matrix<float, Dynamic, Dynamic>) -
VectorXf— это вектор динамического размера с типом float (Matrix<float, Dynamic, 1>)
-
Matrix2Xf— это матрица частично фиксированного размера (динамического размера) с типом float (Matrix<float, 2, Dynamic>) -
MatrixX3d— это матрица частично динамического размера (фиксированного размера) с типом double (Matrix<double, Dynamic, 3>)
См. эту страницу для полного списка предопределенных псевдонимов типов Matrix и Vector.
Вы можете получить доступ к элементам векторов и матриц с помощью обычного индексирования:
Eigen::VectorXd v(10); 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;
Этот класс может быть расширен с помощью механизма плагинов, описанного на странице Расширение MatrixBase (и других классов), определив препроцессорный символ EIGEN_MATRIX_PLUGIN.
Некоторые замечания:
- Плотность против разреженности:
-
Этот класс Matrix обрабатывает плотные, а не разреженные матрицы и векторы. Для разреженных матриц и векторов см. модуль Sparse.
Плотныe матрицы и векторы представляют собой обычные массивы коэффициентов. Все коэффициенты хранятся в обычном смежном массиве. В отличие от разреженных матриц и векторов, где коэффициенты хранятся как список ненулевых коэффициентов.
- Фиксированный размер против динамического размера:
-
Фиксированный размер означает, что количество строк и столбцов известно на этапе компиляции. В этом случае Eigen выделяет массив коэффициентов как массив фиксированного размера в качестве члена класса. Это имеет смысл для очень маленьких матриц, обычно до 4x4, иногда до 16x16. Более крупные матрицы следует объявлять как динамического размера, даже если их размер известен на этапе компиляции.
Динамический размер означает, что количество строк или столбцов не обязательно известно на этапе компиляции. В этом случае они являются переменными во время выполнения, и массив коэффициентов выделяется динамически в куче.
Обратите внимание, что плотные матрицы, будь то фиксированного или динамического размера, не расширяются динамически в смысле std::map. Если вам нужно такое поведение, см. модуль Sparse.
- _MaxRows и _MaxCols:
- В большинстве случаев эти параметры оставляют по умолчанию. Эти параметры обозначают максимальный размер строк и столбцов, которые может иметь матрица. Они полезны в тех случаях, когда точное количество строк и столбцов неизвестно на этапе компиляции, но известно, что они не могут превысить определенного значения. Это происходит при взятии блоков динамического размера внутри матриц фиксированного размера: в этом случае _MaxRows и _MaxCols — это размеры исходной матрицы, а _Rows и _Cols — Dynamic.
ABI и структура хранения
В таблице ниже обобщается ABI некоторых возможных экземпляров Matrix, которые являются постоянными на протяжении всего срока службы Eigen 3.
| Тип Matrix | Эквивалентная структура C |
|---|---|
Matrix<T,Dynamic,Dynamic> |
struct { T *data; // with (size_t(data)%EIGEN_MAX_ALIGN_BYTES)==0 Eigen::Index rows, cols; }; |
Matrix<T,Dynamic,1> Matrix<T,1,Dynamic> |
struct { T *data; // with (size_t(data)%EIGEN_MAX_ALIGN_BYTES)==0 Eigen::Index size; }; |
Matrix<T,Rows,Cols> |
struct { T data[Rows*Cols]; // with (size_t(data)%A(Rows*Cols*sizeof(T)))==0 }; |
Matrix<T,Dynamic,Dynamic,0,MaxRows,MaxCols> |
struct { T data[MaxRows*MaxCols]; // with (size_t(data)%A(MaxRows*MaxCols*sizeof(T)))==0 Eigen::Index rows, cols; }; |
Обратите внимание, что в этой таблице Rows, Cols, MaxRows и MaxCols — все положительные целые числа. A(S) определяется как наибольшая возможная степень двойки, меньшая EIGEN_MAX_STATIC_ALIGN_BYTES.
- См. также
- MatrixBase для большинства методов API для матриц, Иерархия классов, Порядки хранения
| typedef PlainObjectBase< Matrix > | Base |
| Базовый класс typedef. Подробнее... |
|
|
| |
| enum | { RowsAtCompileTime , ColsAtCompileTime , SizeAtCompileTime , MaxRowsAtCompileTime , MaxColsAtCompileTime , MaxSizeAtCompileTime , IsVectorAtCompileTime , NumDimensions , Flags , IsRowMajor , InnerSizeAtCompileTime , InnerStrideAtCompileTime , OuterStrideAtCompileTime } |
| typedef random_access_iterator_type | const_iterator |
| typedef random_access_iterator_type | iterator |
| typedef Array< typename internal::traits< Derived >::Scalar, internal::traits< Derived >::RowsAtCompileTime, internal::traits< Derived >::ColsAtCompileTime, AutoAlign|(internal::traits< Derived >::Flags &RowMajorBit ? RowMajor :ColMajor), internal::traits< Derived >::MaxRowsAtCompileTime, internal::traits< Derived >::MaxColsAtCompileTime > | PlainArray |
| typedef Matrix< typename internal::traits< Derived >::Scalar, internal::traits< Derived >::RowsAtCompileTime, internal::traits< Derived >::ColsAtCompileTime, AutoAlign|(internal::traits< Derived >::Flags &RowMajorBit ? RowMajor :ColMajor), internal::traits< Derived >::MaxRowsAtCompileTime, internal::traits< Derived >::MaxColsAtCompileTime > | PlainMatrix |
| typedef internal::conditional< internal::is_same< typename internal::traits< Derived >::XprKind, MatrixXpr >::value, PlainMatrix, PlainArray >::type | PlainObject |
| Тип обычной матрицы или массива, соответствующий этому выражению. Подробнее... |
|
| typedef internal::traits< Derived >::Scalar | Scalar |
| typedef internal::traits< Derived >::StorageIndex | StorageIndex |
| Тип, используемый для хранения индексов. Подробнее... |
|
| typedef Scalar | value_type |
|
| |
| typedef Eigen::Index | Index |
| Интерфейсный тип индексов. Подробнее... |
|
| Matrix () | |
| Конструктор по умолчанию. Подробнее... |
|
| template<typename OtherDerived > | |
| Matrix (const EigenBase< OtherDerived > &other) | |
| Копирующий конструктор для универсальных выражений. Подробнее... |
|
| Matrix (const Matrix &other) | |
| Копирующий конструктор. |
|
| template<typename OtherDerived > | |
| Matrix (const RotationBase< OtherDerived, ColsAtCompileTime > &r) | |
| Создаёт матрицу поворота Dim x Dim из поворота r. Подробнее... |
|
| template<typename... ArgTypes> | |
| Matrix (const Scalar &a0, const Scalar &a1, const Scalar &a2, const Scalar &a3, const ArgTypes &... args) | |
| Matrix (const Scalar &x) | |
| Инициализирует матрицу 1x1 заданным коэффициентом. Подробнее... |
|
| Matrix (const Scalar &x, const Scalar &y) | |
| Создаёт 2D-вектор с заданными коэффициентами. Подробнее... |
|
| Matrix (const Scalar &x, const Scalar &y, const Scalar &z) | |
| Создаёт 3D-вектор с заданными коэффициентами. Подробнее... |
|
| Matrix (const Scalar &x, const Scalar &y, const Scalar &z, const Scalar &w) | |
| Создаёт 4D-вектор с заданными коэффициентами. Подробнее... |
|
| Matrix (const Scalar *data) | |
| Создаёт матрицу фиксированного размера, инициализированную коэффициентами, начиная с data. |
|
| Matrix (const std::initializer_list< std::initializer_list< Scalar >> &list) | |
| Создаёт Matrix и инициализирует её коэффициентами, заданными списками инициализации, сгруппированными по строкам. [c++11] Подробнее... |
|
| Matrix (Index dim) | |
| Создаёт вектор или строчный вектор с заданной размерностью. Это только для векторов (строчных или столбцовых), т.е. матриц, размерность которых известна на этапе компиляции, и у которых либо одна строка, либо один столбец. Подробнее... |
|
| Matrix (Index rows, Index cols) | |
| Создаёт неинициализированную матрицу с rows строками и cols столбцами. Подробнее... |
|
| template<typename OtherDerived > | |
| Matrix & | operator= (const EigenBase< OtherDerived > &other) |
| Копирует универсальное выражение other в *this. Подробнее... |
|
| Matrix & | operator= (const Matrix &other) |
| Присваивает матрицы друг другу. Подробнее... |
|
| template<typename OtherDerived > | |
| Matrix< _Scalar, _Rows, _Cols, _Storage, _MaxRows, _MaxCols > & | operator= (const RotationBase< OtherDerived, ColsAtCompileTime > &r) |
| Устанавливает матрицу поворота Dim x Dim из поворота r. Подробнее... |
|
|
| |
| const Scalar & | coeff (Index index) const |
| const Scalar & | coeff (Index rowId, Index colId) const |
| Scalar & | coeffRef (Index index) |
| const Scalar & | coeffRef (Index index) const |
| Scalar & | coeffRef (Index rowId, Index colId) |
| const Scalar & | coeffRef (Index rowId, Index colId) const |
| void | conservativeResize (Index rows, Index cols) |
| void | conservativeResize (Index rows, NoChange_t) |
| void | conservativeResize (Index size) |
| void | conservativeResize (NoChange_t, Index cols) |
| void | conservativeResizeLike (const DenseBase< OtherDerived > &other) |
| Scalar * | data () |
| const Scalar * | data () const |
| Matrix< _Scalar, _Rows, _Cols, _Options, _MaxRows, _MaxCols > & | lazyAssign (const DenseBase< OtherDerived > &other) |
| Matrix< _Scalar, _Rows, _Cols, _Options, _MaxRows, _MaxCols > & | operator= (const EigenBase< OtherDerived > &other) |
| Копирует общее выражение other в *this. Подробнее... |
|
| Matrix< _Scalar, _Rows, _Cols, _Options, _MaxRows, _MaxCols > & | operator= (const PlainObjectBase &other) |
| void | resize (Index rows, Index cols) |
| void | resize (Index rows, NoChange_t) |
| void | resize (Index size) |
| void | resize (NoChange_t, Index cols) |
| void | resizeLike (const EigenBase< OtherDerived > &_other) |
| Matrix< _Scalar, _Rows, _Cols, _Options, _MaxRows, _MaxCols > & | setConstant (Index size, const Scalar &val) |
| Matrix< _Scalar, _Rows, _Cols, _Options, _MaxRows, _MaxCols > & | setConstant (Index rows, Index cols, const Scalar &val) |
| Matrix< _Scalar, _Rows, _Cols, _Options, _MaxRows, _MaxCols > & | setConstant (NoChange_t, Index cols, const Scalar &val) |
| Matrix< _Scalar, _Rows, _Cols, _Options, _MaxRows, _MaxCols > & | setConstant (Index rows, NoChange_t, const Scalar &val) |
| Matrix< _Scalar, _Rows, _Cols, _Options, _MaxRows, _MaxCols > & | setZero (Index size) |
| Matrix< _Scalar, _Rows, _Cols, _Options, _MaxRows, _MaxCols > & | setZero (Index rows, Index cols) |
| Matrix< _Scalar, _Rows, _Cols, _Options, _MaxRows, _MaxCols > & | setZero (NoChange_t, Index cols) |
| Matrix< _Scalar, _Rows, _Cols, _Options, _MaxRows, _MaxCols > & | setZero (Index rows, NoChange_t) |
| Matrix< _Scalar, _Rows, _Cols, _Options, _MaxRows, _MaxCols > & | setOnes (Index size) |
| Matrix< _Scalar, _Rows, _Cols, _Options, _MaxRows, _MaxCols > & | setOnes (Index rows, Index cols) |
| Matrix< _Scalar, _Rows, _Cols, _Options, _MaxRows, _MaxCols > & | setOnes (NoChange_t, Index cols) |
| Matrix< _Scalar, _Rows, _Cols, _Options, _MaxRows, _MaxCols > & | setOnes (Index rows, NoChange_t) |
| Matrix< _Scalar, _Rows, _Cols, _Options, _MaxRows, _MaxCols > & | setRandom (Index size) |
| Matrix< _Scalar, _Rows, _Cols, _Options, _MaxRows, _MaxCols > & | setRandom (Index rows, Index cols) |
| Matrix< _Scalar, _Rows, _Cols, _Options, _MaxRows, _MaxCols > & | setRandom (NoChange_t, Index cols) |
| Matrix< _Scalar, _Rows, _Cols, _Options, _MaxRows, _MaxCols > & | setRandom (Index rows, NoChange_t) |
|
| |
| const MatrixFunctionReturnValue< Derived > | acosh () const |
| Для этой функции требуется модуль unsupported MatrixFunctions. Для вычисления косо-обратной гиперболической функции каждого коэффициента используйте ArrayBase::acosh. Подробнее... |
|
| const AdjointReturnType | adjoint () const |
| void | adjointInPlace () |
| template<typename EssentialPart > | |
| void | applyHouseholderOnTheLeft (const EssentialPart &essential, const Scalar &tau, Scalar *workspace) |
| template<typename EssentialPart > | |
| void | applyHouseholderOnTheRight (const EssentialPart &essential, const Scalar &tau, Scalar *workspace) |
| template<typename OtherDerived > | |
| void | applyOnTheLeft (const EigenBase< OtherDerived > &other) |
| template<typename OtherScalar > | |
| void | applyOnTheLeft (Index p, Index q, const JacobiRotation< OtherScalar > &j) |
| template<typename OtherDerived > | |
| void | applyOnTheRight (const EigenBase< OtherDerived > &other) |
| template<typename OtherScalar > | |
| void | applyOnTheRight (Index p, Index q, const JacobiRotation< OtherScalar > &j) |
| ArrayWrapper< Derived > | array () |
| const ArrayWrapper< const Derived > | array () const |
| const DiagonalWrapper< const Derived > | asDiagonal () const |
| const MatrixFunctionReturnValue< Derived > | asinh () const |
| Для этой функции требуется модуль unsupported MatrixFunctions. Для вычисления косо-обратной гиперболической функции каждого коэффициента используйте ArrayBase::asinh. Подробнее... |
|
| const MatrixFunctionReturnValue< Derived > | atanh () const |
| Для этой функции требуется модуль unsupported MatrixFunctions. Для вычисления косо-обратной гиперболической функции каждого коэффициента используйте ArrayBase::atanh. Подробнее... |
|
| BDCSVD< PlainObject > | bdcSvd (unsigned int computationOptions=0) const |
| RealScalar | blueNorm () const |
| const ColPivHouseholderQR< PlainObject > | colPivHouseholderQr () const |
| const CompleteOrthogonalDecomposition< PlainObject > | completeOrthogonalDecomposition () const |
| template<typename ResultType > | |
| void | computeInverseAndDetWithCheck (ResultType &inverse, typename ResultType::Scalar &determinant, bool &invertible, const RealScalar &absDeterminantThreshold=NumTraits< Scalar >::dummy_precision()) const |
| template<typename ResultType > | |
| void | computeInverseWithCheck (ResultType &inverse, bool &invertible, const RealScalar &absDeterminantThreshold=NumTraits< Scalar >::dummy_precision()) const |
| const MatrixFunctionReturnValue< Derived > | cos () const |
| Для этой функции требуется модуль unsupported MatrixFunctions. Для вычисления косинуса каждого коэффициента используйте ArrayBase::cos. Подробнее... |
|
| const MatrixFunctionReturnValue< Derived > | cosh () const |
| Для этой функции требуется модуль unsupported MatrixFunctions. Для вычисления гиперболического косинуса каждого коэффициента используйте ArrayBase::cosh. Подробнее... |
|
| template<typename OtherDerived > | |
| PlainObject | cross (const MatrixBase< OtherDerived > &other) const |
| template<typename OtherDerived > | |
| PlainObject | cross3 (const MatrixBase< OtherDerived > &other) const |
| Scalar | determinant () const |
| DiagonalReturnType | diagonal () |
| ConstDiagonalReturnType | diagonal () const |
| DiagonalDynamicIndexReturnType | diagonal (Index index) |
| ConstDiagonalDynamicIndexReturnType | diagonal (Index index) const |
| Index | diagonalSize () const |
| template<typename OtherDerived > | |
| ScalarBinaryOpTraits< typename internal::traits< Derived >::Scalar, typename internal::traits< OtherDerived >::Scalar >::ReturnType | dot (const MatrixBase< OtherDerived > &other) const |
| EigenvaluesReturnType | eigenvalues () const |
| Вычисляет собственные значения матрицы. Подробнее... |
|
| Matrix< Scalar, 3, 1 > | eulerAngles (Index a0, Index a1, Index a2) const |
| const MatrixExponentialReturnValue< Derived > | exp () const |
| Эта функция требует модуля unsupported MatrixFunctions. Для вычисления экспоненты по элементам используйте ArrayBase::exp . Подробнее... |
|
| Derived & | forceAlignedAccess () |
| const Derived & | forceAlignedAccess () const |
| template<bool Enable> | |
| internal::conditional< Enable, ForceAlignedAccess< Derived >, Derived & >::type | forceAlignedAccessIf () |
| template<bool Enable> | |
| internal::add_const_on_value_type< typename internal::conditional< Enable, ForceAlignedAccess< Derived >, Derived & >::type >::type | forceAlignedAccessIf () const |
| const FullPivHouseholderQR< PlainObject > | fullPivHouseholderQr () const |
| const FullPivLU< PlainObject > | fullPivLu () const |
| const HNormalizedReturnType | hnormalized () const |
| однородное нормализация Подробнее... |
|
| HomogeneousReturnType | homogeneous () const |
| const HouseholderQR< PlainObject > | householderQr () const |
| RealScalar | hypotNorm () const |
| const Inverse< Derived > | inverse () const |
| bool | isDiagonal (const RealScalar &prec=NumTraits< Scalar >::dummy_precision()) const |
| bool | isIdentity (const RealScalar &prec=NumTraits< Scalar >::dummy_precision()) const |
| bool | isLowerTriangular (const RealScalar &prec=NumTraits< Scalar >::dummy_precision()) const |
| template<typename OtherDerived > | |
| bool | isOrthogonal (const MatrixBase< OtherDerived > &other, const RealScalar &prec=NumTraits< Scalar >::dummy_precision()) const |
| bool | isUnitary (const RealScalar &prec=NumTraits< Scalar >::dummy_precision()) const |
| bool | isUpperTriangular (const RealScalar &prec=NumTraits< Scalar >::dummy_precision()) const |
| JacobiSVD< PlainObject > | jacobiSvd (unsigned int computationOptions=0) const |
| template<typename OtherDerived > | |
| const Product< Derived, OtherDerived, LazyProduct > | lazyProduct (const MatrixBase< OtherDerived > &other) const |
| const LDLT< PlainObject > | ldlt () const |
| const LLT< PlainObject > | llt () const |
| const MatrixLogarithmReturnValue< Derived > | log () const |
| Эта функция требует модуля unsupported MatrixFunctions. Для вычисления коэффициент-по-коэффициенту логарифма используйте ArrayBase::log . Подробнее... |
|
| template<int p> | |
| RealScalar | lpNorm () const |
| const PartialPivLU< PlainObject > | lu () const |
| template<typename EssentialPart > | |
| void | makeHouseholder (EssentialPart &essential, Scalar &tau, RealScalar &beta) const |
| void | makeHouseholderInPlace (Scalar &tau, RealScalar &beta) |
| const MatrixFunctionReturnValue< Derived > | matrixFunction (StemFunction f) const |
| Вспомогательная функция для модуля unsupported MatrixFunctions. |
|
| NoAlias< Derived, Eigen::MatrixBase > | noalias () |
| RealScalar | norm () const |
| void | normalize () |
| const PlainObject | normalized () const |
| template<typename OtherDerived > | |
| bool | operator!= (const MatrixBase< OtherDerived > &other) const |
| template<typename DiagonalDerived > | |
| const Product< Derived, DiagonalDerived, LazyProduct > | operator* (const DiagonalBase< DiagonalDerived > &diagonal) const |
| template<typename OtherDerived > | |
| const Product< Derived, OtherDerived > | operator* (const MatrixBase< OtherDerived > &other) const |
| template<typename OtherDerived > | |
| Derived & | operator*= (const EigenBase< OtherDerived > &other) |
| template<typename OtherDerived > | |
| Derived & | operator+= (const MatrixBase< OtherDerived > &other) |
| template<typename OtherDerived > | |
| Derived & | operator-= (const MatrixBase< OtherDerived > &other) |
| Derived & | operator= (const MatrixBase &other) |
| template<typename OtherDerived > | |
| bool | operator== (const MatrixBase< OtherDerived > &other) const |
| RealScalar | operatorNorm () const |
| Вычисляет норму оператора L2. Подробнее... |
|
| const PartialPivLU< PlainObject > | partialPivLu () const |
| const MatrixPowerReturnValue< Derived > | pow (const RealScalar &p) const |
Эта функция требует модуля unsupported MatrixFunctions. Для вычисления коэффициент-по-коэффициенту степени в p используйте ArrayBase::pow . Подробнее... |
|
| const MatrixComplexPowerReturnValue< Derived > | pow (const std::complex< RealScalar > &p) const |
Эта функция требует модуля unsupported MatrixFunctions. Для вычисления коэффициент-по-коэффициенту степени в p используйте ArrayBase::pow . Подробнее... |
|
| template<unsigned int UpLo> | |
| MatrixBase< Derived >::template SelfAdjointViewReturnType< UpLo >::Type | selfadjointView () |
| template<unsigned int UpLo> | |
| MatrixBase< Derived >::template ConstSelfAdjointViewReturnType< UpLo >::Type | selfadjointView () const |
| Derived & | setIdentity () |
| Derived & | setIdentity (Index rows, Index cols) |
| Изменяет размер на указанный, и записывает выражение единичной матрицы (не обязательно квадратной) в *this. Подробнее... |
|
| Derived & | setUnit (Index i) |
Устанавливает коэффициенты в *this i-тый единичный вектор (вектор базиса). Подробнее... |
|
| Derived & | setUnit (Index newSize, Index i) |
| Изменяет размер на newSize, и записывает i-тый единичный вектор (вектор базиса) в *this. Подробнее... |
|
| const MatrixFunctionReturnValue< Derived > | sin () const |
| Эта функция требует модуль unsupported MatrixFunctions. Для вычисления синуса по коэффициентам используйте ArrayBase::sin . Подробнее... |
|
| const MatrixFunctionReturnValue< Derived > | sinh () const |
| Эта функция требует модуль unsupported MatrixFunctions. Для вычисления гиперболического синуса по коэффициентам используйте ArrayBase::sinh . Подробнее... |
|
| const SparseView< Derived > | sparseView (const Scalar &m_reference=Scalar(0), const typename NumTraits< Scalar >::Real &m_epsilon=NumTraits< Scalar >::dummy_precision()) const |
| const MatrixSquareRootReturnValue< Derived > | sqrt () const |
| Эта функция требует модуль unsupported MatrixFunctions. Для вычисления квадратного корня по коэффициентам используйте ArrayBase::sqrt . Подробнее... |
|
| RealScalar | squaredNorm () const |
| RealScalar | stableNorm () const |
| void | stableNormalize () |
| const PlainObject | stableNormalized () const |
| Scalar | trace () const |
| template<unsigned int Mode> | |
| MatrixBase< Derived >::template TriangularViewReturnType< Mode >::Type | triangularView () |
| template<unsigned int Mode> | |
| MatrixBase< Derived >::template ConstTriangularViewReturnType< Mode >::Type | triangularView () const |
| PlainObject | unitOrthogonal (void) const |
|
| |
| bool | all () const |
| bool | allFinite () const |
| bool | any () const |
| iterator | begin () |
| const_iterator | begin () const |
| const_iterator | cbegin () const |
| const_iterator | cend () const |
| ColwiseReturnType | colwise () |
| ConstColwiseReturnType | colwise () const |
| Index | count () const |
| iterator | end () |
| const_iterator | end () const |
| EvalReturnType | eval () const |
| void | fill (const Scalar &value) |
| template<unsigned int Added, unsigned int Removed> | |
| EIGEN_DEPRECATED const Derived & | flagged () const |
| const WithFormat< Derived > | format (const IOFormat &fmt) const |
| bool | hasNaN () const |
| EIGEN_CONSTEXPR Index | innerSize () const |
| template<typename OtherDerived > | |
| bool | isApprox (const DenseBase< OtherDerived > &other, const RealScalar &prec=NumTraits< Scalar >::dummy_precision()) const |
| bool | isApproxToConstant (const Scalar &value, const RealScalar &prec=NumTraits< Scalar >::dummy_precision()) const |
| bool | isConstant (const Scalar &value, const RealScalar &prec=NumTraits< Scalar >::dummy_precision()) const |
| template<typename OtherDerived > | |
| bool | isMuchSmallerThan (const DenseBase< OtherDerived > &other, const RealScalar &prec=NumTraits< Scalar >::dummy_precision()) const |
| template<typename Derived > | |
| bool | isMuchSmallerThan (const typename NumTraits< Scalar >::Real &other, const RealScalar &prec) const |
| bool | isOnes (const RealScalar &prec=NumTraits< Scalar >::dummy_precision()) const |
| bool | isZero (const RealScalar &prec=NumTraits< Scalar >::dummy_precision()) const |
| шаблон<typename OtherDerived > | |
| EIGEN_DEPRECATED Derived & | lazyAssign (const DenseBase< OtherDerived > &other) |
| шаблон<int NaNPropagation> | |
| internal::traits< Derived >::Scalar | maxCoeff () const |
| шаблон<int NaNPropagation, typename IndexType > | |
| internal::traits< Derived >::Scalar | maxCoeff (IndexType *index) const |
| шаблон<int NaNPropagation, typename IndexType > | |
| internal::traits< Derived >::Scalar | maxCoeff (IndexType *row, IndexType *col) const |
| Scalar | mean () const |
| шаблон<int NaNPropagation> | |
| internal::traits< Derived >::Scalar | minCoeff () const |
| шаблон<int NaNPropagation, typename IndexType > | |
| internal::traits< Derived >::Scalar | minCoeff (IndexType *index) const |
| шаблон<int NaNPropagation, typename IndexType > | |
| internal::traits< Derived >::Scalar | minCoeff (IndexType *row, IndexType *col) const |
| const NestByValue< Derived > | nestByValue () const |
| EIGEN_CONSTEXPR Index | nonZeros () const |
| шаблон<typename OtherDerived > | |
| CommaInitializer< Derived > | operator<< (const DenseBase< OtherDerived > &other) |
| CommaInitializer< Derived > | operator<< (const Scalar &s) |
| Derived & | operator= (const DenseBase &other) |
| шаблон<typename OtherDerived > | |
| Derived & | operator= (const DenseBase< OtherDerived > &other) |
| шаблон<typename OtherDerived > | |
| Derived & | operator= (const EigenBase< OtherDerived > &other) |
| Копирует общее выражение other в *this. Подробнее... |
|
| EIGEN_CONSTEXPR Index | outerSize () const |
| Scalar | prod () const |
| шаблон<typename Func > | |
| internal::traits< Derived >::Scalar | redux (const Func &func) const |
| шаблон<int RowFactor, int ColFactor> | |
| const Replicate< Derived, RowFactor, ColFactor > | replicate () const |
| const Replicate< Derived, Dynamic, Dynamic > | replicate (Index rowFactor, Index colFactor) const |
| void | resize (Index newSize) |
| void | resize (Index rows, Index cols) |
| ReverseReturnType | reverse () |
| ConstReverseReturnType | reverse () const |
| void | reverseInPlace () |
| RowwiseReturnType | rowwise () |
| ConstRowwiseReturnType | rowwise () const |
| шаблон<typename ThenDerived , typename ElseDerived > | |
| const Select< Derived, ThenDerived, ElseDerived > | select (const DenseBase< ThenDerived > &thenMatrix, const DenseBase< ElseDerived > &elseMatrix) const |
| шаблон<typename ThenDerived > | |
| const Select< Derived, ThenDerived, typename ThenDerived::ConstantReturnType > | select (const DenseBase< ThenDerived > &thenMatrix, const typename ThenDerived::Scalar &elseScalar) const |
| шаблон<typename ElseDerived > | |
| const Select< Derived, typename ElseDerived::ConstantReturnType, ElseDerived > | select (const typename ElseDerived::Scalar &thenScalar, const DenseBase< ElseDerived > &elseMatrix) const |
| Derived & | setConstant (const Scalar &value) |
| Derived & | setLinSpaced (const Scalar &low, const Scalar &high) |
| Устанавливает вектор с равномерно распределёнными значениями. Подробнее... |
|
| Derived & | setLinSpaced (Index size, const Scalar &low, const Scalar &high) |
| Устанавливает вектор с равномерно распределёнными значениями. Подробнее... |
|
| Derived & | setOnes () |
| Derived & | setRandom () |
| Derived & | setZero () |
| Scalar | sum () const |
| template<typename OtherDerived > | |
| void | swap (const DenseBase< OtherDerived > &other) |
| template<typename OtherDerived > | |
| void | swap (PlainObjectBase< OtherDerived > &other) |
| TransposeReturnType | transpose () |
| ConstTransposeReturnType | transpose () const |
| void | transposeInPlace () |
| CoeffReturnType | value () const |
| template<typename Visitor > | |
| void | visit (Visitor &func) const |
|
| |
| EIGEN_CONSTEXPR Index | cols () const EIGEN_NOEXCEPT |
| EIGEN_CONSTEXPR Index | colStride () const EIGEN_NOEXCEPT |
| Derived & | derived () |
| const Derived & | derived () const |
| EIGEN_CONSTEXPR Index | innerStride () const EIGEN_NOEXCEPT |
| EIGEN_CONSTEXPR Index | outerStride () const EIGEN_NOEXCEPT |
| EIGEN_CONSTEXPR Index | rows () const EIGEN_NOEXCEPT |
| EIGEN_CONSTEXPR Index | rowStride () const EIGEN_NOEXCEPT |
| EIGEN_CONSTEXPR Index | size () const EIGEN_NOEXCEPT |
|
| |
| Scalar & | coeffRef (Index index) |
| Scalar & | coeffRef (Index row, Index col) |
| EIGEN_CONSTEXPR Index | cols () const EIGEN_NOEXCEPT |
| Derived & | derived () |
| const Derived & | derived () const |
| Scalar & | operator() (Index index) |
| Scalar & | operator() (Index row, Index col) |
| Scalar & | operator[] (Index index) |
| EIGEN_CONSTEXPR Index | rows () const EIGEN_NOEXCEPT |
| EIGEN_CONSTEXPR Index | size () const EIGEN_NOEXCEPT |
| Скаляр & | w () |
| Скаляр & | x () |
| Скаляр & | y () |
| Скаляр & | z () |
|
| |
| Тип возвращаемого значения коэффициента | coeff (Index index) const |
| Тип возвращаемого значения коэффициента | coeff (Index row, Index col) const |
| EIGEN_CONSTEXPR Index | cols () const EIGEN_NOEXCEPT |
| Derived & | derived () |
| const Derived & | derived () const |
| Тип возвращаемого значения коэффициента | operator() (Index index) const |
| Тип возвращаемого значения коэффициента | operator() (Index row, Index col) const |
| Тип возвращаемого значения коэффициента | operator[] (Index index) const |
| EIGEN_CONSTEXPR Index | rows () const EIGEN_NOEXCEPT |
| EIGEN_CONSTEXPR Index | size () const EIGEN_NOEXCEPT |
| Тип возвращаемого значения коэффициента | w () const |
| Тип возвращаемого значения коэффициента | x () const |
| Тип возвращаемого значения коэффициента | y () const |
| Тип возвращаемого значения коэффициента | z () const |
|
| |
| EIGEN_CONSTEXPR Index | cols () const EIGEN_NOEXCEPT |
| Derived & | derived () |
| const Derived & | derived () const |
| EIGEN_CONSTEXPR Index | rows () const EIGEN_NOEXCEPT |
| EIGEN_CONSTEXPR Index | size () const EIGEN_NOEXCEPT |
|
| |
| static ConstMapType | Map (const Scalar *data) |
| static MapType | Map (Scalar *data) |
| static ConstMapType | Map (const Scalar *data, Index size) |
| static MapType | Map (Scalar *data, Index size) |
| static ConstMapType | Map (const Scalar *data, Index rows, Index cols) |
| static MapType | Map (Scalar *data, Index rows, Index cols) |
| static StridedConstAlignedMapType< Stride< Outer, Inner > >::type | MapAligned (const Scalar *data, Index rows, Index cols, const Stride< Outer, Inner > &stride) |
| static StridedAlignedMapType< Stride< Outer, Inner > >::type | MapAligned (Scalar *data, Index rows, Index cols, const Stride< Outer, Inner > &stride) |
|
| |
| static const IdentityReturnType | Identity () |
| static const IdentityReturnType | Identity (Index rows, Index cols) |
| static const BasisReturnType | Unit (Index i) |
| static const BasisReturnType | Unit (Index size, Index i) |
| static const BasisReturnType | UnitW () |
| static const BasisReturnType | UnitX () |
| static const BasisReturnType | UnitY () |
| static const BasisReturnType | UnitZ () |
|
| |
| static const ConstantReturnType | Constant (const Scalar &value) |
| static const ConstantReturnType | Constant (Index rows, Index cols, const Scalar &value) |
| static const ConstantReturnType | Constant (Index size, const Scalar &value) |
| static const RandomAccessLinSpacedReturnType | LinSpaced (const Scalar &low, const Scalar &high) |
| Устанавливает линейно распределённый вектор. Подробнее... |
|
| static const RandomAccessLinSpacedReturnType | LinSpaced (Index size, const Scalar &low, const Scalar &high) |
| Устанавливает линейно распределённый вектор. Подробнее... |
|
| static EIGEN_DEPRECATED const RandomAccessLinSpacedReturnType | LinSpaced (Sequential_t, const Scalar &low, const Scalar &high) |
| static EIGEN_DEPRECATED const RandomAccessLinSpacedReturnType | LinSpaced (Sequential_t, Index size, const Scalar &low, const Scalar &high) |
| template<typename CustomNullaryOp > | |
| static const CwiseNullaryOp< CustomNullaryOp, PlainObject > | NullaryExpr (const CustomNullaryOp &func) |
| template<typename CustomNullaryOp > | |
| static const CwiseNullaryOp< CustomNullaryOp, PlainObject > | NullaryExpr (Index rows, Index cols, const CustomNullaryOp &func) |
| template<typename CustomNullaryOp > | |
| static const CwiseNullaryOp< CustomNullaryOp, PlainObject > | NullaryExpr (Index size, const CustomNullaryOp &func) |
| static const ConstantReturnType | Ones () |
| static const ConstantReturnType | Ones (Index rows, Index cols) |
| static const ConstantReturnType | Ones (Index size) |
| статическое const RandomReturnType | Random () |
| статическое const RandomReturnType | Random (Index rows, Index cols) |
| статическое const RandomReturnType | Random (Index size) |
| статическое const ConstantReturnType | Zero () |
| статическое const ConstantReturnType | Zero (Index rows, Index cols) |
| статическое const ConstantReturnType | Zero (Index size) |
|
| |
| PlainObjectBase (const DenseBase< OtherDerived > &other) | |
| PlainObjectBase (const EigenBase< OtherDerived > &other) | |
| PlainObjectBase (const PlainObjectBase &other) | |
| PlainObjectBase (const ReturnByValue< OtherDerived > &other) | |
| Конструктор копирования с оценкой на месте. |
|
| PlainObjectBase (const Scalar &a0, const Scalar &a1, const Scalar &a2, const Scalar &a3, const ArgTypes &... args) | |
| Создать строку столбцового вектора с фиксированным размером из произвольного количества коэффициентов. [c++11] Подробнее... |
|
| PlainObjectBase (const std::initializer_list< std::initializer_list< Scalar >> &list) | |
| Создает матрицу или массив и инициализирует ее элементами, заданными списком инициализаторов списков [c++11] |
|
| void | _resize_to_match (const EigenBase< OtherDerived > &other) |
| Matrix< _Scalar, _Rows, _Cols, _Options, _MaxRows, _MaxCols > & | _set (const DenseBase< OtherDerived > &other) |
Копирует значение выражения other в *this с автоматическим изменением размера. Подробнее... |
|
| Matrix< _Scalar, _Rows, _Cols, _Options, _MaxRows, _MaxCols > & | _set_noalias (const DenseBase< OtherDerived > &other) |
| void | _init2 (Index rows, Index cols, typename internal::enable_if< Base::SizeAtCompileTime!=2, T0 >::type *=0) |
| void | _init2 (const T0 &val0, const T1 &val1, typename internal::enable_if< Base::SizeAtCompileTime==2, T0 >::type *=0) |
| void | _init2 (const Index &val0, const Index &val1, typename internal::enable_if<(!internal::is_same< Index, Scalar >::value) &&(internal::is_same< T0, Index >::value) &&(internal::is_same< T1, Index >::value) &&Base::SizeAtCompileTime==2, T1 >::type *=0) |
| void | _init1 (Index size, typename internal::enable_if<(Base::SizeAtCompileTime!=1||!internal::is_convertible< T, Scalar >::value) &&((!internal::is_same< typename internal::traits< Matrix< _Scalar, _Rows, _Cols, _Options, _MaxRows, _MaxCols > >::XprKind, ArrayXpr >::value||Base::SizeAtCompileTime==Dynamic)), T >::type *=0) |
| void | _init1 (const Scalar &val0, typename internal::enable_if< Base::SizeAtCompileTime==1 &&internal::is_convertible< T, Scalar >::value, T >::type *=0) |
| void | _init1 (const Index &val0, typename internal::enable_if<(!internal::is_same< Index, Scalar >::value) &&(internal::is_same< Index, T >::value) &&Base::SizeAtCompileTime==1 &&internal::is_convertible< T, Scalar >::value, T * >::type *=0) |
| void | _init1 (const Scalar *data) |
| void | _init1 (const DenseBase< OtherDerived > &other) |
| void | _init1 (const Matrix< _Scalar, _Rows, _Cols, _Options, _MaxRows, _MaxCols > &other) |
| void | _init1 (const EigenBase< OtherDerived > &other) |
| void | _init1 (const ReturnByValue< OtherDerived > &other) |
| void | _init1 (const RotationBase< OtherDerived, ColsAtCompileTime > &r) |
| void | _init1 (const Scalar &val0, typename internal::enable_if< Base::SizeAtCompileTime!=Dynamic &&Base::SizeAtCompileTime!=1 &&internal::is_convertible< T, Scalar >::value &&internal::is_same< typename internal::traits< Matrix< _Scalar, _Rows, _Cols, _Options, _MaxRows, _MaxCols > >::XprKind, ArrayXpr >::value, T >::type *=0) |
| void | _init1 (const Index &val0, typename internal::enable_if<(!internal::is_same< Index, Scalar >::value) &&(internal::is_same< Index, T >::value) &&Base::SizeAtCompileTime!=Dynamic &&Base::SizeAtCompileTime!=1 &&internal::is_convertible< T, Scalar >::value &&internal::is_same< typename internal::traits< Matrix< _Scalar, _Rows, _Cols, _Options, _MaxRows, _MaxCols > >::XprKind, ArrayXpr >::value, T * >::type *=0) |
|
| |
| DenseBase () | |
|
| |
| template<typename Derived > | |
| std::ostream & | operator<< (std::ostream &s, const DenseBase< Derived > &m) |
Базовый класс
| typedef PlainObjectBase<Matrix> Eigen::Matrix< _Scalar, _Rows, _Cols, _Options, _MaxRows, _MaxCols >::Base |
Базовый класс typedef.
- См. также
- PlainObjectBase
Matrix() [1/11]
| inline |
Конструктор по умолчанию.
Для матриц фиксированного размера ничего не делает.
Для матриц динамического размера создаёт пустую матрицу размера 0. Не выделяет ни какой массив. Такая матрица называется нулевой матрицей. Этот конструктор является единственным способом создания нулевых матриц: изменение размера матрицы на 0 не поддерживается.
- См. также
- resize(Index,Index)
Matrix() [2/11]
| inline |
Пример:
Matrix<int, 1, 6> a(1, 2, 3, 4, 5, 6);
Matrix<int, 3, 1> b {1, 2, 3};
cout << a << "\n\n" << b << endl;
Вывод:
1 2 3 4 5 6 1 2 3
Matrix() [3/11]
| inlineexplicit |
Конструирует Matrix и инициализирует её из коэффициентов, заданных как списки инициализации, сгруппированных по строкам. [c++11]
В общем случае, конструктор принимает список строк, каждая строка представляется как список коэффициентов:
Пример:
MatrixXd m {
{1, 2, 3},
{4, 5, 6}
};
cout << m << endl;
Вывод:
1 2 3 4 5 6
Каждый из внутренних списков инициализации должен содержать точное количество элементов, в противном случае срабатывает утверждение.
В случае с вектором столбца компиляционного времени разрешается неявное транспонирование из единственной строки. Таким образом VectorXd{{1,2,3,4,5}} является законным, и можно избежать более громоздкого синтаксиса RowVectorXd{{1},{2},{3},{4},{5}}.
Пример:
VectorXi v {{1, 2}};
cout << v << endl;
Вывод:
1 2
В случае с матрицами фиксированного размера размеры списков инициализации должны точно соответствовать размерам матрицы, и неявное транспонирование разрешается только для векторов компиляционного времени.
Matrix() [4/11]
| inlineexplicit |
Конструирует вектор или строковый вектор заданной размерности. Это только для векторов (строковых векторов или столбцовых векторов), то есть матриц, которые в момент компиляции известны как имеющие одну строку или один столбец.
Это полезно для векторов динамического размера. Для векторов фиксированного размера это избыточно, так что вместо этого следует использовать конструктор по умолчанию Matrix().
- Предупреждение
- Этот конструктор отключён для матриц фиксированного размера
1x1. Например, вызов Matrix<double,1,1>(1) вызовет конструктор инициализации: Matrix(const Scalar&). Для матриц фиксированного размера1x1рекомендуется использовать конструктор по умолчанию Matrix(), особенно при использовании нестандартныхEIGEN_INITIALIZE_MATRICES_BY_{ZERO,NAN}макросов (см. Макросы препроцессора).
Matrix() [5/11]
| Eigen::Matrix< _Scalar, _Rows, _Cols, _Options, _MaxRows, _MaxCols >::Matrix | ( | const Scalar & | x | ) |
Конструирует инициализированную матрицу 1x1 с заданным коэффициентом.
- См. также
- Matrix(const Scalar&, const Scalar&, const Scalar&, const Scalar&, const ArgTypes&...)
Matrix() [6/11]
| Eigen::Matrix< _Scalar, _Rows, _Cols, _Options, _MaxRows, _MaxCols >::Matrix | ( | Index | rows, |
| Index | cols | ||
| ) |
Создаёт неинициализированную матрицу с rows строками и cols столбцами.
Это полезно для матриц динамического размера. Для матриц фиксированного размера передача этих параметров излишня, поэтому следует использовать конструктор по умолчанию Matrix() вместо этого.
- Предупреждение
- Этот конструктор отключён для векторов фиксированного размера
1x2и2x1. Например, вызов Matrix2f(2,1) вызовет конструктор инициализации: Matrix(const Scalar& x, const Scalar& y). Для векторов фиксированного размера1x2или2x1рекомендуется использовать конструктор по умолчанию Matrix() вместо этого, особенно при использовании макросов с нестандартнымиEIGEN_INITIALIZE_MATRICES_BY_{ZERO,NAN}(см. Макросы препроцессора).
Matrix() [7/11]
| Eigen::Matrix< _Scalar, _Rows, _Cols, _Options, _MaxRows, _MaxCols >::Matrix | ( | const Scalar & | x, |
| const Scalar & | y | ||
| ) |
Инициализирует 2D вектор заданными коэффициентами.
- См. также
- Matrix(const Scalar&, const Scalar&, const Scalar&, const Scalar&, const ArgTypes&...)
Matrix() [8/11]
| inline |
Инициализирует 3D вектор заданными коэффициентами.
- См. также
- Matrix(const Scalar&, const Scalar&, const Scalar&, const Scalar&, const ArgTypes&...)
Matrix() [9/11]
| inline |
Инициализирует 4D вектор заданными коэффициентами.
- См. также
- Matrix(const Scalar&, const Scalar&, const Scalar&, const Scalar&, const ArgTypes&...)
Matrix() [10/11]
| inline |
Конструктор копирования для общих выражений.
- См. также
- MatrixBase::operator=(const EigenBase<OtherDerived>&)
Matrix() [11/11]
| explicit |
Создаёт матрицу поворота Dim x Dim из поворота r.
Определяется в модуле геометрии.
#include <Eigen/Geometry>
operator=() [1/3]
| inline |
Копирует выражение other в *this.
Выражение должно предоставить функцию (с шаблоном) evalTo(Derived& dst) const, которая выполняет фактическую работу. На практике это позволяет любому пользователю создавать собственные специализированные матрицы без необходимости изменения MatrixBase
- Возвращает
- ссылку на *this.
operator=() [2/3]
| inline |
Присваивает матрицы друг другу.
- Примечание
- Это специальный случай шаблонного оператора =. Его цель – предотвратить скрытие шаблонного оператора = стандартным оператором =.
operator=() [3/3]
| Matrix<_Scalar, _Rows, _Cols, _Storage, _MaxRows, _MaxCols>& Eigen::Matrix< _Scalar, _Rows, _Cols, _Options, _MaxRows, _MaxCols >::operator= | ( | const RotationBase< OtherDerived, ColsAtCompileTime > & | r | ) |
Устанавливает матрицу поворота Dim x Dim из поворота r.
Определяется в модуле геометрии.
#include <Eigen/Geometry>
The documentation for this class was generated from the following files:
© Eigen.
Licensed under the MPL2 License.
https://eigen.tuxfamily.org/dox/classEigen_1_1Matrix.html