Class Matrix

java.lang.Object
edu.cmu.tetrad.util.Matrix
All Implemented Interfaces:
TetradSerializable, Serializable

public class Matrix extends Object implements TetradSerializable
Wraps the Apache math3 linear algebra library for most uses in Tetrad. Specialized uses will still have to use the library directly. One issue this fixes is that a BlockRealMatrix cannot represent a matrix with zero rows; this uses an Array2DRowRealMatrix to represent that case.
Version:
$Id: $Id
Author:
josephramsey
See Also:
  • Constructor Details

    • Matrix

      public Matrix(double[][] data)

      Constructor for Matrix.

      Parameters:
      data - an array of double objects
    • Matrix

      public Matrix(org.apache.commons.math3.linear.RealMatrix data)

      Constructor for Matrix.

      Parameters:
      data - a RealMatrix object
    • Matrix

      public Matrix(int m, int n)

      Constructor for Matrix.

      Parameters:
      m - a int
      n - a int
    • Matrix

      public Matrix(Matrix m)

      Constructor for Matrix.

      Parameters:
      m - a Matrix object
  • Method Details

    • identity

      public static Matrix identity(int rows)

      identity.

      Parameters:
      rows - a int
      Returns:
      a Matrix object
    • sparseMatrix

      public static Matrix sparseMatrix(int m, int n)

      sparseMatrix.

      Parameters:
      m - a int
      n - a int
      Returns:
      a Matrix object
    • serializableInstance

      public static Matrix serializableInstance()
      Generates a simple exemplar of this class to test serialization.
      Returns:
      a Matrix object
    • assign

      public void assign(Matrix matrix)

      assign.

      Parameters:
      matrix - a Matrix object
    • getNumColumns

      public int getNumColumns()

      getNumColumns.

      Returns:
      a int
    • diag

      public Vector diag()

      diag.

      Returns:
      a Vector object
    • getSelection

      public Matrix getSelection(int[] rows, int[] cols)

      getSelection.

      Parameters:
      rows - an array of int objects
      cols - an array of int objects
      Returns:
      a Matrix object
    • copy

      public Matrix copy()

      copy.

      Returns:
      a Matrix object
    • getColumn

      public Vector getColumn(int j)

      getColumn.

      Parameters:
      j - a int
      Returns:
      a Vector object
    • times

      public Matrix times(Matrix m)

      times.

      Parameters:
      m - a Matrix object
      Returns:
      a Matrix object
    • times

      public Vector times(Vector v)

      times.

      Parameters:
      v - a Vector object
      Returns:
      a Vector object
    • toArray

      public double[][] toArray()

      toArray.

      Returns:
      an array of double objects
    • getApacheData

      public org.apache.commons.math3.linear.RealMatrix getApacheData()

      Getter for the field apacheData.

      Returns:
      a RealMatrix object
    • get

      public double get(int i, int j)

      get.

      Parameters:
      i - a int
      j - a int
      Returns:
      a double
    • like

      public Matrix like()

      like.

      Returns:
      a Matrix object
    • set

      public void set(int i, int j, double v)

      set.

      Parameters:
      i - a int
      j - a int
      v - a double
    • getRow

      public Vector getRow(int i)

      getRow.

      Parameters:
      i - a int
      Returns:
      a Vector object
    • getPart

      public Matrix getPart(int i, int j, int k, int l)

      getPart.

      Parameters:
      i - a int
      j - a int
      k - a int
      l - a int
      Returns:
      a Matrix object
    • inverse

      public Matrix inverse() throws org.apache.commons.math3.linear.SingularMatrixException

      inverse.

      Returns:
      a Matrix object
      Throws:
      org.apache.commons.math3.linear.SingularMatrixException - if any.
    • symmetricInverse

      public Matrix symmetricInverse()

      symmetricInverse.

      Returns:
      a Matrix object
    • ginverse

      public Matrix ginverse()

      ginverse.

      Returns:
      a Matrix object
    • assignRow

      public void assignRow(int row, Vector doubles)

      assignRow.

      Parameters:
      row - a int
      doubles - a Vector object
    • assignColumn

      public void assignColumn(int col, Vector doubles)

      assignColumn.

      Parameters:
      col - a int
      doubles - a Vector object
    • trace

      public double trace()

      trace.

      Returns:
      a double
    • det

      public double det()

      det.

      Returns:
      a double
    • transpose

      public Matrix transpose()

      transpose.

      Returns:
      a Matrix object
    • equals

      public boolean equals(Matrix m, double tolerance)

      equals.

      Parameters:
      m - a Matrix object
      tolerance - a double
      Returns:
      a boolean
    • isSquare

      public boolean isSquare()

      isSquare.

      Returns:
      a boolean
    • isSymmetric

      public boolean isSymmetric(double tolerance)

      isSymmetric.

      Parameters:
      tolerance - a double
      Returns:
      a boolean
    • minus

      public Matrix minus(Matrix mb)

      minus.

      Parameters:
      mb - a Matrix object
      Returns:
      a Matrix object
    • norm1

      public double norm1()

      norm1.

      Returns:
      a double
    • plus

      public Matrix plus(Matrix mb)

      plus.

      Parameters:
      mb - a Matrix object
      Returns:
      a Matrix object
    • rank

      public int rank()

      rank.

      Returns:
      a int
    • getNumRows

      public int getNumRows()

      getNumRows.

      Returns:
      a int
    • scalarMult

      public Matrix scalarMult(double scalar)

      scalarMult.

      Parameters:
      scalar - a double
      Returns:
      a Matrix object
    • sqrt

      public Matrix sqrt()

      sqrt.

      Returns:
      a Matrix object
    • sum

      public Vector sum(int direction)

      sum.

      Parameters:
      direction - a int
      Returns:
      a Vector object
    • zSum

      public double zSum()

      zSum.

      Returns:
      a double
    • toString

      public String toString()

      toString.

      Overrides:
      toString in class Object
      Returns:
      a String object