All Packages Class Hierarchy This Package Previous Next Index WEKA's home
Class weka.core.Matrix
java.lang.Object
|
+----weka.core.Matrix
- public class Matrix
- extends java.lang.Object
- implements java.lang.Cloneable, java.io.Serializable
Class for performing operations on a matrix of floating-point values.
- Version:
- $Revision: 1.17 $
- Author:
- Gabi Schmidberger (gabi@cs.waikato.ac.nz)
- Author:
- Yong Wang (yongwang@cs.waikato.ac.nz)
- Author:
- Eibe Frank (eibe@cs.waikato.ac.nz)
- Author:
- Len Trigg (eibe@cs.waikato.ac.nz)
Matrix(double[][])
- Constructs a matrix using a given array.
Matrix(int, int)
- Constructs a matrix and initializes it with default values.
Matrix(Reader)
- Reads a matrix from a reader.
add(Matrix)
- Returns the sum of this matrix with another.
addElement(int, int, double)
- Add a value to an element.
clone()
- Creates and returns a clone of this object.
eigenvalueDecomposition(double[][], double[])
- Performs Eigenvalue Decomposition using Householder QR Factorization
This function is adapted from the CERN Jet Java libraries, for it
the following copyright applies (see also, text on top of file)
Copyright (C) 1999 CERN - European Organization for Nuclear Research.
getColumn(int)
- Gets a column of the matrix and returns it as a double array.
getElement(int, int)
- Returns the value of a cell in the matrix.
getL()
- Returns the L part of the matrix.
getRow(int)
- Gets a row of the matrix and returns it as double array.
getU()
- Returns the U part of the matrix.
isSymmetric()
- Returns true if the matrix is symmetric.
LUDecomposition()
- Performs a LUDecomposition on the matrix.
main(String[])
- Main method for testing this class.
multiply(Matrix)
- Returns the multiplication of two matrices
numColumns()
- Returns the number of columns in the matrix.
numRows()
- Returns the number of rows in the matrix.
regression(Matrix, double)
- Performs a (ridged) linear regression.
regression(Matrix, double[], double)
- Performs a weighted (ridged) linear regression.
setColumn(int, double[])
- Sets a column of the matrix to the given column.
setElement(int, int, double)
- Sets an element of the matrix to the given value.
setRow(int, double[])
- Sets a row of the matrix to the given row.
solve(double[])
- Solve A*X = B using backward substitution.
testEigen(Matrix, double[], boolean)
- Test eigenvectors and eigenvalues.
toString()
- Converts a matrix to a string
transpose()
- Returns the transpose of a matrix.
write(Writer)
- Writes out a matrix.
Matrix
public Matrix(int nr,
int nc)
Constructs a matrix and initializes it with default values.
- Parameters:
nr - the number of rows
nc - the number of columns
Matrix
public Matrix(double array[][]) throws java.lang.Exception
Constructs a matrix using a given array.
- Parameters:
array - the values of the matrix
Matrix
public Matrix(java.io.Reader r) throws java.lang.Exception
Reads a matrix from a reader. The first line in the file should
contain the number of rows and columns. Subsequent lines
contain elements of the matrix.
- Parameters:
r - the reader containing the matrix
- Throws:
- java.lang.Exception - if an error occurs
clone
public java.lang.Object clone() throws java.lang.CloneNotSupportedException
Creates and returns a clone of this object.
- Returns:
- a clone of this instance.
- Throws:
- java.lang.CloneNotSupportedException - if an error occurs
write
public void write(java.io.Writer w) throws java.lang.Exception
Writes out a matrix.
- Parameters:
w - the output Writer
- Throws:
- java.lang.Exception - if an error occurs
getElement
public final double getElement(int rowIndex,
int columnIndex)
Returns the value of a cell in the matrix.
- Parameters:
rowIndex - the row's index
columnIndex - the column's index
- Returns:
- the value of the cell of the matrix
addElement
public final void addElement(int rowIndex,
int columnIndex,
double value)
Add a value to an element.
- Parameters:
rowIndex - the row's index.
columnIndex - the column's index.
value - the value to add.
numRows
public final int numRows()
Returns the number of rows in the matrix.
- Returns:
- the number of rows
numColumns
public final int numColumns()
Returns the number of columns in the matrix.
- Returns:
- the number of columns
setElement
public final void setElement(int rowIndex,
int columnIndex,
double value)
Sets an element of the matrix to the given value.
- Parameters:
rowIndex - the row's index
columnIndex - the column's index
value - the value
setRow
public final void setRow(int index,
double newRow[])
Sets a row of the matrix to the given row. Performs a deep copy.
- Parameters:
index - the row's index
newRow - an array of doubles
getRow
public double[] getRow(int index)
Gets a row of the matrix and returns it as double array.
- Parameters:
index - the row's index
- Returns:
- an array of doubles
getColumn
public double[] getColumn(int index)
Gets a column of the matrix and returns it as a double array.
- Parameters:
index - the column's index
- Returns:
- an array of doubles
setColumn
public final void setColumn(int index,
double newColumn[])
Sets a column of the matrix to the given column. Performs a deep copy.
- Parameters:
index - the column's index
newColumn - an array of doubles
toString
public java.lang.String toString()
Converts a matrix to a string
- Returns:
- the converted string
- Overrides:
- toString in class java.lang.Object
add
public final Matrix add(Matrix other)
Returns the sum of this matrix with another.
- Returns:
- a matrix containing the sum.
transpose
public final Matrix transpose()
Returns the transpose of a matrix.
- Returns:
- the transposition of this instance.
isSymmetric
public boolean isSymmetric()
Returns true if the matrix is symmetric.
- Returns:
- boolean true if matrix is symmetric.
multiply
public final Matrix multiply(Matrix b)
Returns the multiplication of two matrices
- Parameters:
b - the multiplication matrix
- Returns:
- the product matrix
regression
public final double[] regression(Matrix y,
double ridge)
Performs a (ridged) linear regression.
- Parameters:
y - the dependent variable vector
ridge - the ridge parameter
- Returns:
- the coefficients
- Throws:
- java.lang.IllegalArgumentException - if not successful
regression
public final double[] regression(Matrix y,
double w[],
double ridge)
Performs a weighted (ridged) linear regression.
- Parameters:
y - the dependent variable vector
w - the array of data point weights
ridge - the ridge parameter
- Returns:
- the coefficients
- Throws:
- java.lang.IllegalArgumentException - if the wrong number of weights were
provided.
getL
public Matrix getL() throws java.lang.Exception
Returns the L part of the matrix.
This does only make sense after LU decomposition.
- Returns:
- matrix with the L part of the matrix;
getU
public Matrix getU() throws java.lang.Exception
Returns the U part of the matrix.
This does only make sense after LU decomposition.
- Returns:
- matrix with the U part of a matrix;
LUDecomposition
public int[] LUDecomposition() throws java.lang.Exception
Performs a LUDecomposition on the matrix.
It changes the matrix into its LU decomposition using the
Crout algorithm
- Returns:
- the indices of the row permutation
- Throws:
- java.lang.Exception - if the matrix is singular
solve
public void solve(double bb[]) throws java.lang.Exception
Solve A*X = B using backward substitution.
A is current object (this)
B parameter bb
X returned in parameter bb
- Parameters:
bb - first vektor B in above equation then X in same equation.
- Throws:
- matrix - is singulaer
eigenvalueDecomposition
public void eigenvalueDecomposition(double V[][],
double d[]) throws java.lang.Exception
Performs Eigenvalue Decomposition using Householder QR Factorization
This function is adapted from the CERN Jet Java libraries, for it
the following copyright applies (see also, text on top of file)
Copyright (C) 1999 CERN - European Organization for Nuclear Research.
Matrix must be symmetrical.
Eigenvectors are return in parameter V, as columns of the 2D array.
Eigenvalues are returned in parameter d.
- Parameters:
V - double array in which the eigenvectors are returned
d - array in which the eigenvalues are returned
- Throws:
- if - matrix is not symmetric
testEigen
public boolean testEigen(Matrix V,
double d[],
boolean verbose) throws java.lang.Exception
Test eigenvectors and eigenvalues.
function is used for debugging
- Parameters:
V - matrix with eigenvectors of A
d - array with eigenvalues of A
- Throws:
- if - new matrix cannot be made
main
public static void main(java.lang.String ops[])
Main method for testing this class.
All Packages Class Hierarchy This Package Previous Next Index WEKA's home