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)

Constructor Index

 o Matrix(double[][])
Constructs a matrix using a given array.
 o Matrix(int, int)
Constructs a matrix and initializes it with default values.
 o Matrix(Reader)
Reads a matrix from a reader.

Method Index

 o add(Matrix)
Returns the sum of this matrix with another.
 o addElement(int, int, double)
Add a value to an element.
 o clone()
Creates and returns a clone of this object.
 o 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.
 o getColumn(int)
Gets a column of the matrix and returns it as a double array.
 o getElement(int, int)
Returns the value of a cell in the matrix.
 o getL()
Returns the L part of the matrix.
 o getRow(int)
Gets a row of the matrix and returns it as double array.
 o getU()
Returns the U part of the matrix.
 o isSymmetric()
Returns true if the matrix is symmetric.
 o LUDecomposition()
Performs a LUDecomposition on the matrix.
 o main(String[])
Main method for testing this class.
 o multiply(Matrix)
Returns the multiplication of two matrices
 o numColumns()
Returns the number of columns in the matrix.
 o numRows()
Returns the number of rows in the matrix.
 o regression(Matrix, double)
Performs a (ridged) linear regression.
 o regression(Matrix, double[], double)
Performs a weighted (ridged) linear regression.
 o setColumn(int, double[])
Sets a column of the matrix to the given column.
 o setElement(int, int, double)
Sets an element of the matrix to the given value.
 o setRow(int, double[])
Sets a row of the matrix to the given row.
 o solve(double[])
Solve A*X = B using backward substitution.
 o testEigen(Matrix, double[], boolean)
Test eigenvectors and eigenvalues.
 o toString()
Converts a matrix to a string
 o transpose()
Returns the transpose of a matrix.
 o write(Writer)
Writes out a matrix.

Constructor Detail

 o 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
 o Matrix
public Matrix(double array[][]) throws java.lang.Exception
          Constructs a matrix using a given array.
Parameters:
array - the values of the matrix
 o 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

Method Detail

 o 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
 o 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
 o 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
 o 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.
 o numRows
public final int numRows()
          Returns the number of rows in the matrix.
Returns:
the number of rows
 o numColumns
public final int numColumns()
          Returns the number of columns in the matrix.
Returns:
the number of columns
 o 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
 o 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
 o 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
 o 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
 o 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
 o toString
public java.lang.String toString()
          Converts a matrix to a string
Returns:
the converted string
Overrides:
toString in class java.lang.Object
 o add
public final Matrix add(Matrix other)
          Returns the sum of this matrix with another.
Returns:
a matrix containing the sum.
 o transpose
public final Matrix transpose()
          Returns the transpose of a matrix.
Returns:
the transposition of this instance.
 o isSymmetric
public boolean isSymmetric()
          Returns true if the matrix is symmetric.
Returns:
boolean true if matrix is symmetric.
 o multiply
public final Matrix multiply(Matrix b)
          Returns the multiplication of two matrices
Parameters:
b - the multiplication matrix
Returns:
the product matrix
 o 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
 o 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.
 o 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;
 o 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;
 o 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
 o 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
 o 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
 o 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
 o 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