org.encog.mathutil.matrices

## Class 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.
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 Type Method 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` `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.

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

`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()`