|
| Data.Packed.Matrix | | Portability | portable | | Stability | provisional | | Maintainer | Alberto Ruiz <aruiz@um.es> |
|
|
|
| Description |
| A Matrix representation suitable for numerical computations using LAPACK and GSL.
|
|
| Synopsis |
|
| class (Storable a, Floating a) => Element a | | | data Matrix t | | | rows :: Matrix t -> Int | | | cols :: Matrix t -> Int | | | (><) :: Element a => Int -> Int -> [a] -> Matrix a | | | trans :: Matrix t -> Matrix t | | | reshape :: Element t => Int -> Vector t -> Matrix t | | | flatten :: Element t => Matrix t -> Vector t | | | fromLists :: Element t => [[t]] -> Matrix t | | | toLists :: Element t => Matrix t -> [[t]] | | | (@@>) :: Storable t => Matrix t -> (Int, Int) -> t | | | asRow :: Element a => Vector a -> Matrix a | | | asColumn :: Element a => Vector a -> Matrix a | | | fromRows :: Element t => [Vector t] -> Matrix t | | | toRows :: Element t => Matrix t -> [Vector t] | | | fromColumns :: Element t => [Vector t] -> Matrix t | | | toColumns :: Element t => Matrix t -> [Vector t] | | | fromBlocks :: Element t => [[Matrix t]] -> Matrix t | | | repmat :: Element t => Matrix t -> Int -> Int -> Matrix t | | | flipud :: Element t => Matrix t -> Matrix t | | | fliprl :: Element t => Matrix t -> Matrix t | | | subMatrix :: Element a => (Int, Int) -> (Int, Int) -> Matrix a -> Matrix a | | | takeRows :: Element t => Int -> Matrix t -> Matrix t | | | dropRows :: Element t => Int -> Matrix t -> Matrix t | | | takeColumns :: Element t => Int -> Matrix t -> Matrix t | | | dropColumns :: Element t => Int -> Matrix t -> Matrix t | | | extractRows :: Element t => [Int] -> Matrix t -> Matrix t | | | ident :: Element a => Int -> Matrix a | | | diag :: Element a => Vector a -> Matrix a | | | diagRect :: (Element t, Num t) => Vector t -> Int -> Int -> Matrix t | | | takeDiag :: Element t => Matrix t -> Vector t | | | liftMatrix :: (Element a, Element b) => (Vector a -> Vector b) -> Matrix a -> Matrix b | | | liftMatrix2 :: (Element t, Element a, Element b) => (Vector a -> Vector b -> Vector t) -> Matrix a -> Matrix b -> Matrix t | | | format :: Element t => String -> (t -> String) -> Matrix t -> String | | | readMatrix :: String -> Matrix Double | | | fromFile :: FilePath -> (Int, Int) -> IO (Matrix Double) | | | fromArray2D :: Element e => Array (Int, Int) e -> Matrix e |
|
|
| Documentation |
|
|
| Optimized matrix computations are provided for elements in the Element class.
| | Instances | |
|
|
|
| Matrix representation suitable for GSL and LAPACK computations.
| Instances | |
|
|
|
|
|
|
|
An easy way to create a matrix:
> (2><3)[1..6]
(2><3)
[ 1.0, 2.0, 3.0
, 4.0, 5.0, 6.0 ] This is the format produced by the instances of Show (Matrix a), which
can also be used for input.
|
|
|
| Matrix transpose.
|
|
|
Creates a matrix from a vector by grouping the elements in rows with the desired number of columns. (GNU-Octave groups by columns. To do it you can define reshapeF r = trans . reshape r
where r is the desired number of rows.)
> reshape 4 (fromList [1..12])
(3><4)
[ 1.0, 2.0, 3.0, 4.0
, 5.0, 6.0, 7.0, 8.0
, 9.0, 10.0, 11.0, 12.0 ] |
|
|
Creates a vector by concatenation of rows
> flatten (ident 3)
9 |> [1.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,1.0] |
|
|
Creates a Matrix from a list of lists (considered as rows).
> fromLists [[1,2],[3,4],[5,6]]
(3><2)
[ 1.0, 2.0
, 3.0, 4.0
, 5.0, 6.0 ] |
|
|
| the inverse of Data.Packed.Matrix.fromLists
|
|
|
| Reads a matrix position.
|
|
|
| creates a 1-row matrix from a vector
|
|
|
| creates a 1-column matrix from a vector
|
|
|
| creates a Matrix from a list of vectors
|
|
|
| extracts the rows of a matrix as a list of vectors
|
|
|
| Creates a matrix from a list of vectors, as columns
|
|
|
| Creates a list of vectors from the columns of a matrix
|
|
|
Creates a matrix from blocks given as a list of lists of matrices:
> let a = diag $ fromList [5,7,2]
> let b = reshape 4 $ constant (-1) 12
> fromBlocks [[a,b],[b,a]]
(6><7)
[ 5.0, 0.0, 0.0, -1.0, -1.0, -1.0, -1.0
, 0.0, 7.0, 0.0, -1.0, -1.0, -1.0, -1.0
, 0.0, 0.0, 2.0, -1.0, -1.0, -1.0, -1.0
, -1.0, -1.0, -1.0, -1.0, 5.0, 0.0, 0.0
, -1.0, -1.0, -1.0, -1.0, 0.0, 7.0, 0.0
, -1.0, -1.0, -1.0, -1.0, 0.0, 0.0, 2.0 ] |
|
|
creates matrix by repetition of a matrix a given number of rows and columns
> repmat (ident 2) 2 3 :: Matrix Double
(4><6)
[ 1.0, 0.0, 1.0, 0.0, 1.0, 0.0
, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0
, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0
, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0 ] |
|
|
| Reverse rows
|
|
|
| Reverse columns
|
|
|
| :: Element a | | | => (Int, Int) | (r0,c0) starting position
| | -> (Int, Int) | (rt,ct) dimensions of submatrix
| | -> Matrix a | input matrix
| | -> Matrix a | result
| | Extracts a submatrix from a matrix.
|
|
|
|
| Creates a matrix with the first n rows of another matrix
|
|
|
| Creates a copy of a matrix without the first n rows
|
|
|
| Creates a matrix with the first n columns of another matrix
|
|
|
| Creates a copy of a matrix without the first n columns
|
|
|
| rearranges the rows of a matrix according to the order given in a list of integers.
|
|
|
| creates the identity matrix of given dimension
|
|
|
| creates a square matrix with the given diagonal
|
|
|
creates a rectangular diagonal matrix
> diagRect (constant 5 3) 3 4
(3><4)
[ 5.0, 0.0, 0.0, 0.0
, 0.0, 5.0, 0.0, 0.0
, 0.0, 0.0, 5.0, 0.0 ] |
|
|
| extracts the diagonal from a rectangular matrix
|
|
|
| application of a vector function on the flattened matrix elements
|
|
|
| application of a vector function on the flattened matrices elements
|
|
|
Creates a string from a matrix given a separator and a function to show each entry. Using
this function the user can easily define any desired display function:
import Text.Printf(printf) disp = putStrLn . format " " (printf "%.2f") |
|
|
| creates a matrix from a table of numbers.
|
|
|
| loads a matrix efficiently from formatted ASCII text file (the number of rows and columns must be known in advance).
|
|
|
|
| Produced by Haddock version 2.4.2 |