weka.clusterers
Class AlgVector

java.lang.Object
  extended byweka.clusterers.AlgVector
All Implemented Interfaces:
java.lang.Cloneable, java.io.Serializable

public class AlgVector
extends java.lang.Object
implements java.lang.Cloneable, java.io.Serializable

Class for performing operations on an algebraic vector of floating-point values.

See Also:
Serialized Form

Field Summary
protected  double[] m_Elements
          The values of the matrix
 
Constructor Summary
AlgVector(double[] array)
          Constructs a vector using a given array.
AlgVector(Instance instance)
          Constructs a vector using an instance.
AlgVector(Instances format, java.util.Random random)
          Constructs a vector using a given data format.
AlgVector(int n)
          Constructs a vector and initializes it with default values.
 
Method Summary
 AlgVector add(AlgVector other)
          Returns the sum of this vector with another.
 void changeLength(double len)
          Changes the length of a vector.
 double dotMultiply(AlgVector b)
          Returns the inner (or dot) product of two vectors
 Instance getAsInstance(Instances model)
          Gets the elements of the vector as an instance.
 double getElement(int index)
          Returns the value of a cell in the matrix.
 double[] getElements(int index)
          Gets the elements of the vector and returns them as double array.
protected  void initialize()
          Creates and returns a clone of this object.
protected  void initialize(java.util.Random random)
          Resets the elements to the default value which is 0.0.
static void main(java.lang.String[] ops)
          Main method for testing this class.
 double norm()
          Returns the norm of the vector
 void normVector()
          Norms this vector to length 1.0
 int numElements()
          Returns the number of elements in the vector.
 void scalarMultiply(double s)
          Computes the scalar product of this vector with a scalar
 void setElement(int index, double value)
          Sets an element of the matrix to the given value.
 void setElements(double[] elements)
          Sets the elements of the vector to values of the given array.
 AlgVector substract(AlgVector other)
          Returns the difference of this vector minus another.
 java.lang.String toString()
          Converts a vector to a string
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

m_Elements

protected double[] m_Elements
The values of the matrix

Constructor Detail

AlgVector

public AlgVector(int n)
Constructs a vector and initializes it with default values.

Parameters:
n - the number of elements

AlgVector

public AlgVector(double[] array)
          throws java.lang.Exception
Constructs a vector using a given array.

Parameters:
array - the values of the matrix

AlgVector

public AlgVector(Instances format,
                 java.util.Random random)
          throws java.lang.Exception
Constructs a vector using a given data format. The vector has an element for each numerical attribute. The other attributes (nominal, string) are ignored. Random is used to initialize the attributes.


AlgVector

public AlgVector(Instance instance)
          throws java.lang.Exception
Constructs a vector using an instance. The vector has an element for each numerical attribute. The other attributes (nominal, string) are ignored.

Parameters:
instance - with numeric attributes, that AlgVector gets build from
Throws:
if - instance doesn't have access to the data format
java.lang.Exception
Method Detail

initialize

protected void initialize()
Creates and returns a clone of this object.

Returns:
a clone of this instance.
Throws:
java.lang.CloneNotSupportedException - if an error occurs public Object clone() throws CloneNotSupportedException { Matrix m = (Matrix)super.clone(); m.m_Elements = new double[numRows()][numColumns()]; for (int r = 0; r < numRows(); r++) { for (int c = 0; c < numColumns(); c++) { m.m_Elements[r][c] = m_Elements[r][c]; } } return m; } /** Writes out a matrix.
java.lang.Exception - if an error occurs public void write(Writer w) throws Exception { w.write("% Rows\tColumns\n"); w.write("" + numRows() + "\t" + numColumns() + "\n"); w.write("% Matrix elements\n"); for(int i = 0; i < numRows(); i++) { for(int j = 0; j < numColumns(); j++) { w.write("" + m_Elements[i][j] + "\t"); } w.write("\n"); } w.flush(); } /** Resets the elements to the default value which is 0.0.

initialize

protected void initialize(java.util.Random random)
Resets the elements to the default value which is 0.0.


getElement

public final double getElement(int index)
Returns the value of a cell in the matrix.

Parameters:
index - the row's index
Returns:
the value of the cell of the vector

numElements

public final int numElements()
Returns the number of elements in the vector.

Returns:
the number of rows

setElement

public final void setElement(int index,
                             double value)
Sets an element of the matrix to the given value.

Parameters:
index - the elements index
value - the new value

setElements

public final void setElements(double[] elements)
Sets the elements of the vector to values of the given array. Performs a deep copy.

Parameters:
elements - an array of doubles

getElements

public double[] getElements(int index)
Gets the elements of the vector and returns them as double array.

Returns:
an array of doubles

getAsInstance

public Instance getAsInstance(Instances model)
                       throws java.lang.Exception
Gets the elements of the vector as an instance. !! NON-numeric data is ignored sofar

Returns:
an array of doubles
Throws:
if - length of vector is not number of numerical attributes
java.lang.Exception

toString

public java.lang.String toString()
Converts a vector to a string

Returns:
the converted string

add

public final AlgVector add(AlgVector other)
Returns the sum of this vector with another.

Returns:
a vector containing the sum.

substract

public final AlgVector substract(AlgVector other)
Returns the difference of this vector minus another.

Returns:
a vector containing the difference vector.

dotMultiply

public final double dotMultiply(AlgVector b)
Returns the inner (or dot) product of two vectors

Parameters:
b - the multiplication matrix
Returns:
the double representing the dot product

scalarMultiply

public final void scalarMultiply(double s)
Computes the scalar product of this vector with a scalar

Parameters:
s - the scalar

changeLength

public void changeLength(double len)
Changes the length of a vector.

Returns:
the norm of the vector

norm

public double norm()
Returns the norm of the vector

Returns:
the norm of the vector

normVector

public final void normVector()
Norms this vector to length 1.0


main

public static void main(java.lang.String[] ops)
Main method for testing this class.