Click or drag to resize

Meta.Numerics.Matrices Namespace

Contains types that store and operate on matrices.
Public classAnyMatrixT
Describes the form of all matrices.
Public classAnyRectangularMatrix
Describes the form of all real matrices.
Public classAnySquareMatrix
Describes the form of all real, square matrices.
Public classAnyVector
Implements functionality shared between row and column vectors.
Public classCode exampleCholeskyDecomposition
Represents the Cholesky Decomposition of a symmetric, positive definite matrix.
Public classColumnVector
A column vector of real numbers.
Public classComplexColumnVector
Represents a column vector of complex numbers.
Public classComplexEigendecomposition
Represents a collection of complex eigenvalues and eigenvectors.
Public classComplexEigenpair
Represents a complex-valued eigenvector and corresponding eigenvalue.
Public classComplexEigenpairCollection
Contains a collection of complex eigenvalues and eigenvectors.
Public classDiagonalMatrix
Represents a diagonal matrix.
Public classLUDecomposition
Represents the LU decomposition of a square matrix.
Public classQRDecomposition
Represents a QR decomposition of a matrix.
Public classRealEigendecomposition
Represents a collection of real eigenvalues and eigenvectors.
Public classRealEigenpair
Contains a real-valued eigenvector and eigenvalue.
Public classRealEigenpairCollection
Contains real-valued eigenvalues and eigenvectors of a matrix.
Public classRectangularMatrix
A rectangular matrix of real numbers.
Public classRowVector
A row vector of real numbers.
Public classSingularValueContributor
Contains the value and left and right vectors of one term in a singular value decomposition.
Public classSingularValueContributorCollection
Contains all the terms contributing to the singular value decomposition of a matrix.
Public classSingularValueDecomposition
Stores the singular value decomposition of a matrix.
Public classSparseSquareMatrix
Represents a sparse, square matrix.
Public classSquareMatrix
Represents a square matrix.
Public classSquareQRDecomposition
Represents the QR decomposition of a square matrix.
Public classSymmetricMatrix
Represents a symmetric matrix.
Public classTridiagonalLUDecomposition
Represents the LU decomposition of a tri-diagonal matrix.
Public classTridiagonalMatrix
Represents a tri-diagonal matrix.
Public classUnitMatrix
Represents a unit matrix.
Public enumerationOrderBy
Describes an ordering of eigenvalues.

You can create matrices of real values using the RectangularMatrix and SquareMatrix classes, and vectors of real values using the ColumnVector and RowVector classes. Operator overloads are defined that allow you to perform allowed arithmetic operations, such as adding two vectors or matrices, or multiplying a vector by a scalar, vector, or matrix. Each type defines methods corresponding to common linear algebra operations, such as inversion (Inverse), finding eigenvalues and eigenvectors (Eigenvalues and Eigendecomposition), and decompositions (QRDecomposition and SingularValueDecomposition).

The fastest way to solve a linear system A x = b is to form the LUDecomposition of A and call Solve(IReadOnlyListDouble) with the right-hand-side b.

There are several additional matrix containers that support smaller storage requirements and faster operations for matrices with particular structures, such as DiagonalMatrix, TridiagonalMatrix, SymmetricMatrix, and SparseSquareMatrix.

Where possible, we quickly return new matrix objects that implement a new view of existing stored values, without copying or otherwise disturbing the original values. Examples include Transpose and Row(Int32). For read-only purposes, this is much faster and requires less memory that computing and storing new values. The returned matrix objects are, however, necessarily read-only. Whether an matrix object is read-only can be determined from IsReadOnly. If you want to modify a read-only matrix object, simply make a copy using the object's Copy method (e.g. Copy or Copy).