Class pmr.euclid.RealMatrix
All Packages Class Hierarchy This Package Previous Next Index
Class pmr.euclid.RealMatrix
java.lang.Object
|
+----pmr.euclid.Status
|
+----pmr.euclid.RealMatrix
- public class RealMatrix
- extends Status
RealMatrix - rectangular real number matrix class
RealMatrix represents a rectangular m-x-n matrix.
The basic matrix algebra for non-square matrices is represented here
and this class is also a base for square matrices.
Read the signature of each member function carefully as some MODIFY
the object and some CREATE A NEW ONE. Among the reasons for this
is that subclassing (e.g to RealSquareMatrix) is easier with
one of these forms in certain cases. Note that if you modify
an object, then all references to it will refer to the changed object
- Author:
- (C) P. Murray-Rust, 1996
-
cols
- number of columns
-
flmat
- the matrix
-
rows
- number of rows
-
RealMatrix()
- Default matrix, with cols = rows = 0
-
RealMatrix(double[][])
- COPY from an existing matrix - check that it is rectangular
-
RealMatrix(int, int)
- A rows*cols matrix set to 0.0 (rows or cols < 0 defaults to 0)
-
RealMatrix(int, int, double)
- initalises all elements in the array with a given double[]
-
RealMatrix(int, int, double[])
- Formed by feeding in an existing 1-D array to a rowsXcols matrix.
-
RealMatrix(IntMatrix)
- from a IntMatrix
-
RealMatrix(RealMatrix)
- copy constructor - COPIES the other matrix
-
RealMatrix(RealMatrix, int, int, int, int)
- submatrix of another matrix; fails if lowrow > hirow, lowrow < 0, etc.
-
appendColumnData(RealArray)
- append data to matrix columnwise
-
appendColumnData(RealMatrix)
- append data to matrix columnwise
-
appendRowData(RealArray)
- append data to matrix rowwise
-
appendRowData(RealMatrix)
- append data to matrix rowwise
-
clearMatrix()
- clear matrix
-
clone(RealMatrix)
-
-
columnwiseDivide(RealArray)
- divide each column of a matrix by a vector of scalars (i.e.
-
deleteColumn(int)
- delete column from matrix and close up
-
deleteColumns(int, int)
- delete 2 or more adjacent columns (inclusive) from matrix and close up
-
deleteRow(int)
- delete row from matrix and close up
-
deleteRows(int, int)
- delete 2 or more adjacent rows (inclusive) from matrix and close up;
if (high > rows-1 high -> rows-1; or low < 0, low -> 0
-
elementAt(int, int)
- extracts a given element from the matrix
-
elementAt(Int2)
- extracts a given element from the matrix
-
elementsInRange(RealRange)
- produce a mask of those elements which fall in a range (1) else (0)
-
equals(RealMatrix)
- are two matrices equal in all elements?
-
euclideanColumnLength(int)
- get Euclidean length of column
-
euclideanColumnLengths()
- get array of Euclidean column lengths
-
euclideanRowLength(int)
- get Euclidean length of row
-
euclideanRowLengths()
- get array of Euclidean row lengths
-
extractColumnData(int)
- get column data from matrix
-
extractRowData(int)
- get row data from matrix
-
extractSubMatrixData(int, int, int, int)
- extract a RealMatrix submatrix from a RealMatrix
-
getCols()
- get number of columns
-
getMatrix()
-
-
getMatrixAsArray()
- get matrix as double[] (in C order: m(0,0), m(0,1) ...)
-
getRows()
- get number of rows
-
getTranspose()
- transpose matrix - creates new Matrix
-
indexOfLargestElement()
- get index of largest element
-
indexOfLargestElementInColumn(int)
- get index of largest element in column
-
indexOfLargestElementInRow(int)
- get index of largest element in row (or -1 if default matrix)
-
indexOfSmallestElement()
- get index of smallest element
-
indexOfSmallestElementInColumn(int)
- get index of smallest elem in column
-
indexOfSmallestElementInRow(int)
- get index of smallest element in row
-
insertColumnData(int, RealArray)
- add data as column or column block into matrix and expand
-
insertColumnData(int, RealMatrix)
- add data as column or column block into matrix and expand
-
insertColumns(int, int)
- insert a hole into the matric and expand
-
insertRowData(int, RealArray)
- insert row of data into matrix and expand
-
insertRowData(int, RealMatrix)
- insert 2 or more adjacent rows of data into matrix and expand
-
insertRows(int, int)
- make space for new rows in matrix and expand
-
isOrthogonal()
- is matrix Orthogonal (row-wise)? i.e.
-
isSquare()
- is the matrix square?
-
largestElement()
- get largest element
-
largestElementInColumn(int)
- get largest element in a column
-
largestElementInRow(int)
- get largest element in a row
-
main(String[])
- tests RealMatrix routines = new RealMatrix
-
multiply(RealArray)
- matrix multiplication of a COLUMN vector
-
multiply(RealMatrix)
- matrix multiplication - multiplies conformable matrices to give NEW matrix
result = 'this' * m; (order matters)
-
multiplyBy(double)
- matrix multiplication by a scalar - MODIFIES matrix
-
negative()
- unary minus - negate all elements of matrix; MODIFIES matrix
-
normaliseByColumns()
- normalise matrix columns to length of 1.0
-
normaliseByRows()
- normalise matrix rows to length of 1.0
-
plus(RealMatrix)
- matrix addition - adds conformable matrices giving NEW matrix
-
reorderColumnsBy(IntSet)
- reorder the columns of a matrix.
-
reorderRowsBy(IntSet)
- reorder the rows of a matrix.
-
replaceColumnData(int, double[])
- and from double[]
-
replaceColumnData(int, RealArray)
- replace data in a single column - return false if impossible
-
replaceColumnData(int, RealMatrix)
- replace data in a block of columns
-
replaceRowData(int, double[])
- and using a double[]
-
replaceRowData(int, RealArray)
- overwrite existing row of data
-
replaceRowData(int, RealMatrix)
- overwrite existing block of rows; if too big, copying is truncated
-
replaceSubMatrixData(int, int, RealMatrix)
- replaces the data starting at (low_row, low_col) and extending by the
dimensions for the matrix m
-
setAllElements(double)
- initialise matrix to given double
-
setElementAt(int, int, double)
- inserts a given element to the matrix - MODIFIES matrix
-
shallowCopy(RealMatrix)
- shallowCopy
-
smallestElement()
- get smallest element
-
smallestElementInColumn(int)
- get smallest element in a column
-
smallestElementInRow(int)
- get smallest element in a row
-
subtract(RealMatrix)
- matrix subtraction - subtracts conformable matrices giving NEW matrix
-
toString()
- output matrix - very crude...
rows
protected int rows
- number of rows
cols
protected int cols
- number of columns
flmat
protected double flmat[][]
- the matrix
RealMatrix
public RealMatrix()
- Default matrix, with cols = rows = 0
RealMatrix
public RealMatrix(int r,
int c)
- A rows*cols matrix set to 0.0 (rows or cols < 0 defaults to 0)
RealMatrix
public RealMatrix(int rows,
int cols,
double array[]) throws InvalidArgumentException
- Formed by feeding in an existing 1-D array to a rowsXcols matrix.
THE COLUMN IS THE FASTEST MOVING INDEX, i.e. the matrix is filled
as flmat(0,0), flmat(0,1) ... C-LIKE.
COPIES the array
- Throws: InvalidArgumentException
- size of array is not rows*cols
RealMatrix
public RealMatrix(int r,
int c,
double f)
- initalises all elements in the array with a given double[]
RealMatrix
public RealMatrix(RealMatrix m,
int lowrow,
int hirow,
int lowcol,
int hicol) throws InvalidArgumentException
- submatrix of another matrix; fails if lowrow > hirow, lowrow < 0, etc.
COPIES the parts of m
- Throws: InvalidArgumentException
- impossible value of hirow, hicol, lowrow, lowcol
RealMatrix
public RealMatrix(RealMatrix m)
- copy constructor - COPIES the other matrix
RealMatrix
public RealMatrix(IntMatrix m)
- from a IntMatrix
RealMatrix
public RealMatrix(double m[][]) throws NonRectangularMatrixException
- COPY from an existing matrix - check that it is rectangular
- Throws: NonRectangularMatrixException
- m has rows of different lengths
shallowCopy
public void shallowCopy(RealMatrix m)
- shallowCopy
clone
public RealMatrix clone(RealMatrix m)
getRows
public int getRows()
- get number of rows
getCols
public int getCols()
- get number of columns
getMatrix
public double[][] getMatrix()
getMatrixAsArray
public double[] getMatrixAsArray()
- get matrix as double[] (in C order: m(0,0), m(0,1) ...)
equals
public boolean equals(RealMatrix m) throws UnconformableMatricesException
- are two matrices equal in all elements?
- Throws: UnconformableMatricesException
- m and this are different sizes
plus
public RealMatrix plus(RealMatrix m2) throws UnconformableMatricesException
- matrix addition - adds conformable matrices giving NEW matrix
- Throws: UnconformableMatricesException
- m and this are different sizes
subtract
public RealMatrix subtract(RealMatrix m2) throws UnconformableMatricesException
- matrix subtraction - subtracts conformable matrices giving NEW matrix
- Throws: UnconformableMatricesException
- m and this are different sizes
negative
public void negative()
- unary minus - negate all elements of matrix; MODIFIES matrix
multiply
public RealMatrix multiply(RealMatrix m) throws UnconformableMatricesException
- matrix multiplication - multiplies conformable matrices to give NEW matrix
result = 'this' * m; (order matters)
- Throws: UnconformableMatricesException
- m and this are different sizes
multiplyBy
public void multiplyBy(double f)
- matrix multiplication by a scalar - MODIFIES matrix
multiply
public RealArray multiply(RealArray f) throws UnconformableMatricesException
- matrix multiplication of a COLUMN vector
- Throws: UnconformableMatricesException
- f.size() differs from cols
columnwiseDivide
public void columnwiseDivide(RealArray f) throws UnconformableMatricesException
- divide each column of a matrix by a vector of scalars (i.e.
mat[i][j] = mat[i][j] / vect[i] - MODIFIES matrix
- Throws: UnconformableMatricesException
- f.size() and rows differ
elementAt
public double elementAt(int row,
int col)
- extracts a given element from the matrix
elementAt
public double elementAt(Int2 rowcol)
- extracts a given element from the matrix
setElementAt
public void setElementAt(int row,
int col,
double f)
- inserts a given element to the matrix - MODIFIES matrix
largestElement
public double largestElement()
- get largest element
indexOfLargestElement
public Int2 indexOfLargestElement()
- get index of largest element
largestElementInColumn
public double largestElementInColumn(int jcol)
- get largest element in a column
indexOfLargestElementInColumn
public int indexOfLargestElementInColumn(int jcol)
- get index of largest element in column
largestElementInRow
public double largestElementInRow(int irow)
- get largest element in a row
indexOfLargestElementInRow
public int indexOfLargestElementInRow(int irow)
- get index of largest element in row (or -1 if default matrix)
smallestElement
public double smallestElement()
- get smallest element
indexOfSmallestElement
public Int2 indexOfSmallestElement()
- get index of smallest element
smallestElementInColumn
public double smallestElementInColumn(int jcol)
- get smallest element in a column
indexOfSmallestElementInColumn
public int indexOfSmallestElementInColumn(int jcol)
- get index of smallest elem in column
smallestElementInRow
public double smallestElementInRow(int irow)
- get smallest element in a row
indexOfSmallestElementInRow
public int indexOfSmallestElementInRow(int irow)
- get index of smallest element in row
isOrthogonal
public boolean isOrthogonal()
- is matrix Orthogonal (row-wise)? i.e. row(i) * row(j) = 0 if i != j.
euclideanRowLength
public double euclideanRowLength(int i)
- get Euclidean length of row
euclideanRowLengths
public RealArray euclideanRowLengths()
- get array of Euclidean row lengths
euclideanColumnLength
public double euclideanColumnLength(int i)
- get Euclidean length of column
euclideanColumnLengths
public RealArray euclideanColumnLengths()
- get array of Euclidean column lengths
extractColumnData
public RealArray extractColumnData(int col)
- get column data from matrix
extractRowData
public RealArray extractRowData(int row)
- get row data from matrix
clearMatrix
public void clearMatrix()
- clear matrix
setAllElements
public void setAllElements(double f)
- initialise matrix to given double
normaliseByRows
public void normaliseByRows()
- normalise matrix rows to length of 1.0
normaliseByColumns
public void normaliseByColumns()
- normalise matrix columns to length of 1.0
getTranspose
public RealMatrix getTranspose()
- transpose matrix - creates new Matrix
isSquare
public boolean isSquare()
- is the matrix square?
deleteColumn
public void deleteColumn(int col)
- delete column from matrix and close up
deleteColumns
public void deleteColumns(int low,
int high)
- delete 2 or more adjacent columns (inclusive) from matrix and close up
deleteRow
public void deleteRow(int row)
- delete row from matrix and close up
deleteRows
public void deleteRows(int low,
int high)
- delete 2 or more adjacent rows (inclusive) from matrix and close up;
if (high > rows-1 high -> rows-1; or low < 0, low -> 0
replaceColumnData
public boolean replaceColumnData(int column,
RealArray f)
- replace data in a single column - return false if impossible
replaceColumnData
public void replaceColumnData(int starting_col,
double f[])
- and from double[]
replaceColumnData
public void replaceColumnData(int start_column,
RealMatrix m)
- replace data in a block of columns
insertColumns
public void insertColumns(int after_col,
int delta_cols)
- insert a hole into the matric and expand
insertColumnData
public void insertColumnData(int after_col,
RealArray f)
- add data as column or column block into matrix and expand
insertColumnData
public void insertColumnData(int after_col,
RealMatrix m)
- add data as column or column block into matrix and expand
insertRows
public void insertRows(int after_row,
int delta_rows)
- make space for new rows in matrix and expand
replaceRowData
public void replaceRowData(int row,
RealArray f) throws UnconformableMatricesException
- overwrite existing row of data
- Throws: UnconformableMatricesException
- f.size() and cols differ
replaceRowData
public void replaceRowData(int row,
double f[]) throws UnconformableMatricesException
- and using a double[]
- Throws: UnconformableMatricesException
- f.length and cols differ
replaceRowData
public void replaceRowData(int after_row,
RealMatrix m) throws UnconformableMatricesException
- overwrite existing block of rows; if too big, copying is truncated
- Throws: UnconformableMatricesException
- m.rows and this.rows differ
insertRowData
public void insertRowData(int after_row,
RealMatrix m) throws UnconformableMatricesException
- insert 2 or more adjacent rows of data into matrix and expand
- Throws: UnconformableMatricesException
- m.cols and this.colsdiffer
insertRowData
public void insertRowData(int after_row,
RealArray f) throws UnconformableMatricesException
- insert row of data into matrix and expand
- Throws: UnconformableMatricesException
- f.size() and this.cols differ
appendColumnData
public void appendColumnData(RealArray f) throws UnconformableMatricesException
- append data to matrix columnwise
- Throws: UnconformableMatricesException
- f.size() and this.rows differ
appendColumnData
public void appendColumnData(RealMatrix m) throws UnconformableMatricesException
- append data to matrix columnwise
- Throws: UnconformableMatricesException
- m.rows and this.rows differ
appendRowData
public void appendRowData(RealArray f) throws UnconformableMatricesException
- append data to matrix rowwise
- Throws: UnconformableMatricesException
- m.cols and this.cols differ
appendRowData
public void appendRowData(RealMatrix m) throws UnconformableMatricesException
- append data to matrix rowwise
- Throws: UnconformableMatricesException
- m.cols and this.cols differ
replaceSubMatrixData
public void replaceSubMatrixData(int low_row,
int low_col,
RealMatrix m)
- replaces the data starting at (low_row, low_col) and extending by the
dimensions for the matrix m
reorderColumnsBy
public RealMatrix reorderColumnsBy(IntSet is) throws UnconformableMatricesException, ArrayIndexOutOfBoundsException
- reorder the columns of a matrix.
- Throws: UnconformableMatricesException
- is.size() and this.cols differ
- Throws: ArrayIndexOutOfBoundsException
- an element of is >= this.cols
reorderRowsBy
public RealMatrix reorderRowsBy(IntSet is) throws UnconformableMatricesException, ArrayIndexOutOfBoundsException
- reorder the rows of a matrix. Deleting rows is allowed
- Throws: UnconformableMatricesException
- is.size() and this.rows differ
- Throws: ArrayIndexOutOfBoundsException
- an element of is >= this.rows
extractSubMatrixData
public RealMatrix extractSubMatrixData(int low_row,
int high_row,
int low_col,
int high_col) throws InvalidArgumentException
- extract a RealMatrix submatrix from a RealMatrix
- Throws: InvalidArgumentException
- low/high_row/col are outside range of this
elementsInRange
public IntMatrix elementsInRange(RealRange r)
- produce a mask of those elements which fall in a range (1) else (0)
toString
public String toString()
- output matrix - very crude...
- Overrides:
- toString in class Object
main
public static void main(String args[])
- tests RealMatrix routines = new RealMatrix
All Packages Class Hierarchy This Package Previous Next Index