public class YaleSparseMatrix extends Object implements SparseMatrix
Matrix
based on the Yale Sparse Matrix Format, as
implemented in CompactSparseVector
. Each row is allocated a pair of
arrays which keeps the non-zero column values in column order. Lookups are
O(log n) where n is the number of non-zero values for the largest row. The
size of this matrix is fixed, and attempts to access rows or columns beyond
the size will throw an IndexOutOfBoundsException
.Matrix.Type
Constructor and Description |
---|
YaleSparseMatrix(double[][] values)
Constructs a sparse matrix using values from the given two dimension
array.
|
YaleSparseMatrix(int rows,
int cols)
Constructs a sparse matrix with the specified dimensions.
|
Modifier and Type | Method and Description |
---|---|
int |
columns()
Returns the number of columns in this
Matrix . |
double |
get(int row,
int col)
Returns the value of the
Matrix at the provided row and column. |
double[] |
getColumn(int column)
Returns the entire column.
|
SparseDoubleVector |
getColumnVector(int column)
Returns the column as a sparse vector.
|
double[] |
getRow(int row)
Returns the entire row.
|
SparseDoubleVector |
getRowVector(int row)
Returns the row as a sparse vector.
|
int |
rows()
Returns the number of rows in this
Matrix . |
void |
set(int row,
int col,
double val)
Sets the location at the row and column to the provided value.
|
void |
setColumn(int column,
double[] values)
Sets the values for the column of this
Matrix using the provided
array. |
void |
setColumn(int column,
DoubleVector values)
Sets the values for the column of this
Matrix using the provided
DoubleVector . |
void |
setRow(int row,
double[] columns)
Sets the values for the row of this
Matrix using the provided
array. |
void |
setRow(int row,
DoubleVector values)
Sets the values for the row of this
Matrix using the provided
DoubleVector . |
double[][] |
toDenseArray()
Converts the
Matrix to a two dimensional array. |
public YaleSparseMatrix(int rows, int cols)
public YaleSparseMatrix(double[][] values)
IllegalArgumentException
- If either the number of rows is equal to
0, or the column lengths are jaggedpublic double get(int row, int col)
Matrix
at the provided row and column.public double[] getColumn(int column)
public SparseDoubleVector getColumnVector(int column)
getColumnVector
in interface Matrix
getColumnVector
in interface SparseMatrix
column
- The column to return a DoubleVector
forDoubleVector
representing the column at column
public double[] getRow(int row)
public SparseDoubleVector getRowVector(int row)
getRowVector
in interface Matrix
getRowVector
in interface SparseMatrix
row
- the index of row to returnSparseDoubleVector
of the row's datapublic int columns()
Matrix
.public void set(int row, int col, double val)
public void setColumn(int column, double[] values)
Matrix
using the provided
array. Note that the array itself is not made internal to the instance
itself.public void setColumn(int column, DoubleVector values)
Matrix
using the provided
DoubleVector
. Note that the DoubleVector
itself is not
made internal to the instance itself.public void setRow(int row, double[] columns)
Matrix
using the provided
array. Note that the array itself is not made internal to the instance
itself.public void setRow(int row, DoubleVector values)
Matrix
using the provided
DoubleVector
. Note that the DoubleVector
itself is not
made internal to the instance itself.public double[][] toDenseArray()
Matrix
to a two dimensional array. Note that for
large matrices, this may exhaust all available memory.toDenseArray
in interface Matrix
Matrix
.Copyright © 2012. All Rights Reserved.