Matrix Manipulation
Prev | Chapter 11. List of GEL functions | Next

## Matrix Manipulation

AppendElement

      AppendElement (v,elt)

  Append an element to a vector and return the vector. No expansion is done. Normally a row vector is built if starting from `null` or a 1-by-1 matrix, but if given a column vector it will properly build a column vector.

ApplyOverMatrix

      ApplyOverMatrix (a,func)

  Apply a function over all entries of a matrix and return a matrix of the results.

ApplyOverMatrix2

      ApplyOverMatrix2 (a,b,func)

  Apply a function over all entries of 2 matrices (or 1 value and 1 matrix) and return a matrix of the results.

ColumnsOf

      ColumnsOf (M)

  Gets the columns of a matrix as a horizontal vector.

ComplementSubmatrix

      ComplementSubmatrix (m,r,c)

  Remove column(s) and row(s) from a matrix.

CompoundMatrix

      CompoundMatrix (k,A)

  Calculate the kth compound matrix of A.

CountZeroColumns

      CountZeroColumns (M)

  Count the number of zero columns in a matrix. For example, once you column-reduce a matrix, you can use this to find the nullity. See `cref` and `Nullity`.

DeleteColumn

      DeleteColumn (M,col)

  Delete a column of a matrix.

DeleteRow

      DeleteRow (M,row)

  Delete a row of a matrix.

DiagonalOf

      DiagonalOf (M)

  Gets the diagonal entries of a matrix as a column vector.

  See Wikipedia for more information.

DotProduct

      DotProduct (u,v)

  Get the dot product of two vectors. The vectors must be of the same size. No conjugates are taken so this is a bilinear form even if working over the complex numbers; This is the bilinear scalar product not the sesquilinear scalar product. See HermitianProduct for the standard sesquilinear inner product.

  See Wikipedia or Planetmath for more information.

ExpandMatrix

      ExpandMatrix (M)

  Expands a matrix just like we do on unquoted matrix input. That is we expand any internal matrices as blocks. This is a way to construct matrices out of smaller ones and this is normally done automatically on input unless the matrix is quoted.

HermitianProduct

      HermitianProduct (u,v)

  Aliases: `InnerProduct`

  Get the Hermitian product of two vectors. The vectors must be of the same size. This is a sesquilinear form using the identity matrix.

  See Wikipedia or Mathworld for more information.

I

      I (n)

  Aliases: `eye`

  Return an identity matrix of a given size, that is `n` by `n`. If `n` is zero, returns `null`.

  See Wikipedia or Planetmath for more information.

IndexComplement

      IndexComplement (vec,msize)

  Return the index complement of a vector of indexes. Everything is one based. For example for vector `[2,3]` and size `5`, we return `[1,4,5]`. If `msize` is 0, we always return `null`.

IsDiagonal

      IsDiagonal (M)

  Is a matrix diagonal.

  See Wikipedia or Planetmath for more information.

IsIdentity

      IsIdentity (x)

  Check if a matrix is the identity matrix. Automatically returns `false` if the matrix is not square. Also works on numbers, in which case it is equivalent to `x==1`. When `x` is `null` (we could think of that as a 0 by 0 matrix), no error is generated and `false` is returned.

IsLowerTriangular

      IsLowerTriangular (M)

  Is a matrix lower triangular. That is, are all the entries above the diagonal zero.

IsMatrixInteger

      IsMatrixInteger (M)

  Check if a matrix is a matrix of integers (non-complex).

IsMatrixNonnegative

      IsMatrixNonnegative (M)

  Check if a matrix is non-negative, that is if each element is non-negative. Do not confuse positive matrices with positive semi-definite matrices.

  See Wikipedia for more information.

IsMatrixPositive

      IsMatrixPositive (M)

  Check if a matrix is positive, that is if each element is positive (and hence real). In particular, no element is 0. Do not confuse positive matrices with positive definite matrices.

  See Wikipedia for more information.

IsMatrixRational

      IsMatrixRational (M)

  Check if a matrix is a matrix of rational (non-complex) numbers.

IsMatrixReal

      IsMatrixReal (M)

  Check if a matrix is a matrix of real (non-complex) numbers.

IsMatrixSquare

      IsMatrixSquare (M)

  Check if a matrix is square, that is its width is equal to its height.

IsUpperTriangular

      IsUpperTriangular (M)

  Is a matrix upper triangular? That is, a matrix is upper triangular if all the entries below the diagonal are zero.

IsValueOnly

      IsValueOnly (M)

  Check if a matrix is a matrix of numbers only. Many internal functions make this check. Values can be any number including complex numbers.

IsVector

      IsVector (v)

  Is argument a horizontal or a vertical vector. Genius does not distinguish between a matrix and a vector and a vector is just a 1 by `n` or `n` by 1 matrix.

IsZero

      IsZero (x)

  Check if a matrix is composed of all zeros. Also works on numbers, in which case it is equivalent to `x==0`. When `x` is `null` (we could think of that as a 0 by 0 matrix), no error is generated and `true` is returned as the condition is vacuous.

LowerTriangular

      LowerTriangular (M)

  Returns a copy of the matrix `M` with all the entries above the diagonal set to zero.

MakeDiagonal

      MakeDiagonal (v,arg...)

  Aliases: `diag`

  Make diagonal matrix from a vector. Alternatively you can pass in the values to put on the diagonal as arguments. So `MakeDiagonal([1,2,3])` is the same as `MakeDiagonal(1,2,3)`.

  See Wikipedia or Planetmath for more information.

MakeVector

      MakeVector (A)

  Alias: `MakeColumnVector`

  Make column vector out of matrix by putting columns above each other. Returns `null` when given `null`. Can be used to ensure a vector is a column vector.

MakeRowVector

      MakeRowVector (A)

  Make row vector out of matrix by putting rows one after another. Returns `null` when given `null`. Can be used to ensure a vector is a row vector.

MatrixProduct

      MatrixProduct (A)

  Calculate the product of all elements in a matrix or vector. That is we multiply all the elements and return a number that is the product of all the elements.

MatrixSum

      MatrixSum (A)

  Calculate the sum of all elements in a matrix or vector. That is we add all the elements and return a number that is the sum of all the elements.

MatrixSumSquares

      MatrixSumSquares (A)

  Calculate the sum of squares of all elements in a matrix or vector.

NonzeroColumns

      NonzeroColumns (M)

  Returns a row vector of the indices of nonzero columns in the matrix `M`.

  Version 1.0.18 onwards.

NonzeroElements

      NonzeroElements (v)

  Returns a row vector of the indices of nonzero elements in the vector `v`.

  Version 1.0.18 onwards.

OuterProduct

      OuterProduct (u,v)

  Get the outer product of two vectors. That is, suppose that `u` and `v` are vertical vectors, then the outer product is `v * u.'`.

ReverseVector

      ReverseVector (v)

  Reverse elements in a vector. Return `null` if given `null`

RowSum

      RowSum (m)

  Calculate sum of each row in a matrix and return a vertical vector with the result.

RowSumSquares

      RowSumSquares (m)

  Calculate sum of squares of each row in a matrix and return a vertical vector with the results.

RowsOf

      RowsOf (M)

  Gets the rows of a matrix as a vertical vector. Each element of the vector is a horizontal vector that is the corresponding row of `M`. This function is useful if you wish to loop over the rows of a matrix. For example, as `for r in RowsOf(M) do something(r)`.

SetMatrixSize

      SetMatrixSize (M,rows,columns)

  Make new matrix of given size from old one. That is, a new matrix will be returned to which the old one is copied. Entries that don't fit are clipped and extra space is filled with zeros. If `rows` or `columns` are zero then `null` is returned.

ShuffleVector

      ShuffleVector (v)

  Shuffle elements in a vector. Return `null` if given `null`.

  Version 1.0.13 onwards.

SortVector

      SortVector (v)

  Sort vector elements in an increasing order.

StripZeroColumns

      StripZeroColumns (M)

  Removes any all-zero columns of `M`.

StripZeroRows

      StripZeroRows (M)

  Removes any all-zero rows of `M`.

Submatrix

      Submatrix (m,r,c)

  Return column(s) and row(s) from a matrix. This is just equivalent to `m@(r,c)`. `r` and `c` should be vectors of rows and columns (or single numbers if only one row or column is needed).

SwapRows

      SwapRows (m,row1,row2)

  Swap two rows in a matrix.

UpperTriangular

      UpperTriangular (M)

  Returns a copy of the matrix `M` with all the entries below the diagonal set to zero.

columns

      columns (M)

  Get the number of columns of a matrix.

elements

      elements (M)

  Get the total number of elements of a matrix. This is the number of columns times the number of rows.

ones

      ones (rows,columns...)

  Make an matrix of all ones (or a row vector if only one argument is given). Returns `null` if either rows or columns are zero.

rows

      rows (M)

  Get the number of rows of a matrix.

zeros

      zeros (rows,columns...)

  Make a matrix of all zeros (or a row vector if only one argument is given). Returns `null` if either rows or columns are zero.

Prev | Up | Next
Number Theory | Home | Linear Algebra