org.encog.mathutil.matrices
Class Matrix

java.lang.Object
  extended by org.encog.mathutil.matrices.Matrix
All Implemented Interfaces:
Serializable, Cloneable

public class Matrix
extends Object
implements Cloneable, Serializable

This class implements a mathematical matrix. Matrix math is very important to neural network processing. Many of the neural network classes make use of the matrix classes in this package.

See Also:
Serialized Form

Constructor Summary
Matrix(boolean[][] sourceMatrix)
          Construct a bipolar matrix from an array of booleans.
Matrix(double[][] sourceMatrix)
          Create a matrix from an array of doubles.
Matrix(int rows, int cols)
          Create a blank array with the specified number of rows and columns.
 
Method Summary
 void add(int row, int col, double value)
          Add a value to one cell in the matrix.
 void add(Matrix theMatrix)
          Add the specified matrix to this matrix.
 void clear()
          Set all rows and columns to zero.
 Matrix clone()
          Create a copy of the matrix.
static Matrix createColumnMatrix(double[] input)
          Turn an array of doubles into a column matrix.
static Matrix createRowMatrix(double[] input)
          Turn an array of doubles into a row matrix.
 boolean equals(Matrix theMatrix, int precision)
          Compare to matrixes with the specified level of precision.
 boolean equals(Object other)
          Check to see if this matrix equals another, using default precision.
 int fromPackedArray(double[] array, int index)
          Create a matrix from a packed array.
 double get(int row, int col)
          Read the specified cell in the matrix.
 double[][] getArrayCopy()
           
 Matrix getCol(int col)
          Read one entire column from the matrix as a sub-matrix.
 int getCols()
          Get the columns in the matrix.
 double[][] getData()
           
 Matrix getMatrix(int[] r, int[] c)
          Get a submatrix.
 Matrix getMatrix(int[] r, int j0, int j1)
          Get a submatrix.
 Matrix getMatrix(int i0, int i1, int[] c)
          Get a submatrix.
 Matrix getMatrix(int i0, int i1, int j0, int j1)
          Get a submatrix.
 Matrix getRow(int row)
          Get the specified row as a sub-matrix.
 int getRows()
          Get the number of rows in the matrix.
 int hashCode()
          Compute a hash code for this matrix.
 Matrix inverse()
           
 boolean isSquare()
           
 boolean isVector()
          Determine if the matrix is a vector.
 boolean isZero()
          Return true if every value in the matrix is zero.
 void multiply(double value)
          Multiply every value in the matrix by the specified value.
 void multiply(double[] vector, double[] result)
          Multiply every row by the specified vector.
 void randomize(double min, double max)
          Randomize the matrix.
 void set(double value)
          Set every value in the matrix to the specified value.
 void set(int row, int col, double value)
          Set an individual cell in the matrix to the specified value.
 void set(Matrix theMatrix)
          Set this matrix's values to that of another matrix.
 void setMatrix(int[] r, int[] c, Matrix x)
          Set a submatrix.
 void setMatrix(int[] r, int j0, int j1, Matrix x)
          Set a submatrix.
 void setMatrix(int i0, int i1, int[] c, Matrix x)
          Set a submatrix.
 void setMatrix(int i0, int i1, int j0, int j1, Matrix x)
          Set a submatrix.
 int size()
          Get the size of the array.
 Matrix solve(Matrix b)
          Solve A*X = B.
 double sum()
          Sum all of the values in the matrix.
 double[] toPackedArray()
          Convert the matrix into a packed array.
 String toString()
          
 
Methods inherited from class java.lang.Object
finalize, getClass, notify, notifyAll, wait, wait, wait
 

Constructor Detail

Matrix

public Matrix(boolean[][] sourceMatrix)
Construct a bipolar matrix from an array of booleans.

Parameters:
sourceMatrix - The booleans to create the matrix from.

Matrix

public Matrix(double[][] sourceMatrix)
Create a matrix from an array of doubles.

Parameters:
sourceMatrix - An array of doubles.

Matrix

public Matrix(int rows,
              int cols)
Create a blank array with the specified number of rows and columns.

Parameters:
rows - How many rows in the matrix.
cols - How many columns in the matrix.
Method Detail

createColumnMatrix

public static Matrix createColumnMatrix(double[] input)
Turn an array of doubles into a column matrix.

Parameters:
input - A double array.
Returns:
A column matrix.

createRowMatrix

public static Matrix createRowMatrix(double[] input)
Turn an array of doubles into a row matrix.

Parameters:
input - A double array.
Returns:
A row matrix.

add

public void add(int row,
                int col,
                double value)
Add a value to one cell in the matrix.

Parameters:
row - The row to add to.
col - The column to add to.
value - The value to add to the matrix.

add

public void add(Matrix theMatrix)
Add the specified matrix to this matrix. This will modify the matrix to hold the result of the addition.

Parameters:
theMatrix - The matrix to add.

clear

public void clear()
Set all rows and columns to zero.


clone

public Matrix clone()
Create a copy of the matrix.

Overrides:
clone in class Object
Returns:
A colne of the matrix.

equals

public boolean equals(Matrix theMatrix,
                      int precision)
Compare to matrixes with the specified level of precision.

Parameters:
theMatrix - The other matrix to compare to.
precision - How much precision to use.
Returns:
True if the two matrixes are equal.

equals

public boolean equals(Object other)
Check to see if this matrix equals another, using default precision.

Overrides:
equals in class Object
Parameters:
other - The other matrix to compare.
Returns:
True if the two matrixes are equal.

fromPackedArray

public int fromPackedArray(double[] array,
                           int index)
Create a matrix from a packed array.

Parameters:
array - The packed array.
index - Where to start in the packed array.
Returns:
The new index after this matrix has been read.

get

public double get(int row,
                  int col)
Read the specified cell in the matrix.

Parameters:
row - The row to read.
col - The column to read.
Returns:
The value at the specified row and column.

getArrayCopy

public double[][] getArrayCopy()
Returns:
A COPY of this matrix as a 2d array.

getCol

public Matrix getCol(int col)
Read one entire column from the matrix as a sub-matrix.

Parameters:
col - The column to read.
Returns:
The column as a sub-matrix.

getCols

public int getCols()
Get the columns in the matrix.

Returns:
The number of columns in the matrix.

getData

public double[][] getData()
Returns:
Get the 2D matrix array.

getMatrix

public Matrix getMatrix(int i0,
                        int i1,
                        int j0,
                        int j1)
Get a submatrix.

Parameters:
i0 - Initial row index.
i1 - Final row index.
j0 - Initial column index.
j1 - Final column index.
Returns:
The specified submatrix.

getMatrix

public Matrix getMatrix(int i0,
                        int i1,
                        int[] c)
Get a submatrix.

Parameters:
i0 - Initial row index.
i1 - Final row index.
c - Array of column indices.
Returns:
The specified submatrix.

getMatrix

public Matrix getMatrix(int[] r,
                        int j0,
                        int j1)
Get a submatrix.

Parameters:
r - Array of row indices.
j0 - Initial column index
j1 - Final column index
Returns:
The specified submatrix.

getMatrix

public Matrix getMatrix(int[] r,
                        int[] c)
Get a submatrix.

Parameters:
r - Array of row indices.
c - Array of column indices.
Returns:
The specified submatrix.

getRow

public Matrix getRow(int row)
Get the specified row as a sub-matrix.

Parameters:
row - The row to get.
Returns:
A matrix.

getRows

public int getRows()
Get the number of rows in the matrix.

Returns:
The number of rows in the matrix.

hashCode

public int hashCode()
Compute a hash code for this matrix.

Overrides:
hashCode in class Object
Returns:
The hash code.

inverse

public Matrix inverse()
Returns:
The matrix inverted.

isVector

public boolean isVector()
Determine if the matrix is a vector. A vector is has either a single number of rows or columns.

Returns:
True if this matrix is a vector.

isZero

public boolean isZero()
Return true if every value in the matrix is zero.

Returns:
True if the matrix is all zeros.

multiply

public void multiply(double value)
Multiply every value in the matrix by the specified value.

Parameters:
value - The value to multiply the matrix by.

multiply

public void multiply(double[] vector,
                     double[] result)
Multiply every row by the specified vector.

Parameters:
vector - The vector to multiply by.
result - The result to hold the values.

randomize

public void randomize(double min,
                      double max)
Randomize the matrix.

Parameters:
min - Minimum random value.
max - Maximum random value.

set

public void set(double value)
Set every value in the matrix to the specified value.

Parameters:
value - The value to set the matrix to.

set

public void set(int row,
                int col,
                double value)
Set an individual cell in the matrix to the specified value.

Parameters:
row - The row to set.
col - The column to set.
value - The value to be set.

set

public void set(Matrix theMatrix)
Set this matrix's values to that of another matrix.

Parameters:
theMatrix - The other matrix.

setMatrix

public void setMatrix(int i0,
                      int i1,
                      int j0,
                      int j1,
                      Matrix x)
Set a submatrix.

Parameters:
i0 - Initial row index
i1 - Final row index
j0 - Initial column index
j1 - Final column index
x - A(i0:i1,j0:j1)

setMatrix

public void setMatrix(int i0,
                      int i1,
                      int[] c,
                      Matrix x)
Set a submatrix.

Parameters:
i0 - Initial row index
i1 - Final row index
c - Array of column indices.
x - The submatrix.

setMatrix

public void setMatrix(int[] r,
                      int j0,
                      int j1,
                      Matrix x)
Set a submatrix.

Parameters:
r - Array of row indices.
j0 - Initial column index
j1 - Final column index
x - A(r(:),j0:j1)

setMatrix

public void setMatrix(int[] r,
                      int[] c,
                      Matrix x)
Set a submatrix.

Parameters:
r - Array of row indices.
c - Array of column indices.
x - The matrix to set.

size

public int size()
Get the size of the array. This is the number of elements it would take to store the matrix as a packed array.

Returns:
The size of the matrix.

solve

public Matrix solve(Matrix b)
Solve A*X = B.

Parameters:
b - right hand side.
Returns:
Solution if A is square, least squares solution otherwise.

sum

public double sum()
Sum all of the values in the matrix.

Returns:
The sum of the matrix.

toPackedArray

public double[] toPackedArray()
Convert the matrix into a packed array.

Returns:
The matrix as a packed array.

toString

public String toString()

Overrides:
toString in class Object

isSquare

public boolean isSquare()


Copyright © 2014. All Rights Reserved.