Matrix
org.encog.mathutil.matrices

## Class Matrix

• All Implemented Interfaces:
Serializable, Cloneable

`public class Matrixextends Objectimplements 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.
Serialized Form
• ### Constructor Summary

Constructors
Constructor and Description
`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

Methods
Modifier and TypeMethod and Description
`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``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

`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.

`public final 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.

`public final 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 final void clear()`
Set all rows and columns to zero.
• #### clone

`public final Matrix clone()`
Create a copy of the matrix.
Overrides:
`clone` in class `Object`
Returns:
A colne of the matrix.
• #### equals

`public final 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 final 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 final 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 final 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 final double[][] getArrayCopy()`
Returns:
A COPY of this matrix as a 2d array.
• #### getCol

`public final 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 final int getCols()`
Get the columns in the matrix.
Returns:
The number of columns in the matrix.
• #### getData

`public final double[][] getData()`
Returns:
Get the 2D matrix array.
• #### getMatrix

`public final 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 final 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 final 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 final 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 final Matrix getRow(int row)`
Get the specified row as a sub-matrix.
Parameters:
`row` - The row to get.
Returns:
A matrix.
• #### getRows

`public final int getRows()`
Get the number of rows in the matrix.
Returns:
The number of rows in the matrix.
• #### hashCode

`public final int hashCode()`
Compute a hash code for this matrix.
Overrides:
`hashCode` in class `Object`
Returns:
The hash code.
• #### inverse

`public final Matrix inverse()`
Returns:
The matrix inverted.
• #### isVector

`public final 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 final boolean isZero()`
Return true if every value in the matrix is zero.
Returns:
True if the matrix is all zeros.
• #### multiply

`public final 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 final 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 final void randomize(double min,             double max)`
Randomize the matrix.
Parameters:
`min` - Minimum random value.
`max` - Maximum random value.
• #### set

`public final 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 final 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 final void set(Matrix theMatrix)`
Set this matrix's values to that of another matrix.
Parameters:
`theMatrix` - The other matrix.
• #### setMatrix

`public final 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 final 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 final 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 final 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 final 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 final 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 final double sum()`
Sum all of the values in the matrix.
Returns:
The sum of the matrix.
• #### toPackedArray

`public final Double[] toPackedArray()`
Convert the matrix into a packed array.
Returns:
The matrix as a packed array.
• #### toString

`public final String toString()`
Overrides:
`toString` in class `Object`