Class MatrixUtil
- java.lang.Object
-
- ubic.basecode.dataStructure.matrix.MatrixUtil
-
public class MatrixUtil extends Object
- Author:
- Paul
-
-
Constructor Summary
Constructors Constructor Description MatrixUtil()
-
Method Summary
All Methods Static Methods Concrete Methods Modifier and Type Method Description static cern.colt.matrix.DoubleMatrix1D
applyToIndicesMatchingCriteria(cern.colt.matrix.DoubleMatrix1D x, DoubleFunction<Boolean> criterion, DoubleFunction<Double> action)
static cern.colt.list.BooleanArrayList
conjunction(cern.colt.list.BooleanArrayList a, cern.colt.list.BooleanArrayList b)
Compute the conjuction (logical 'and') of two boolean vectorsstatic boolean
containsNearlyZeros(cern.colt.matrix.DoubleMatrix1D d)
static cern.colt.matrix.DoubleMatrix1D
diagonal(cern.colt.matrix.DoubleMatrix2D matrix)
Extract the diagonal from a matrix.static cern.colt.matrix.DoubleMatrix2D
dropColumn(cern.colt.matrix.DoubleMatrix2D n, int indexToDrop)
static cern.colt.matrix.DoubleMatrix2D
dropColumns(cern.colt.matrix.DoubleMatrix2D n, Collection<Integer> droppedColumns)
static cern.colt.matrix.DoubleMatrix1D
fromList(cern.colt.list.DoubleArrayList list)
Makes a copystatic <R,C,V>
VgetObject(Matrix2D<R,C,V> matrix, int rowIndex, int colIndex)
static <R,C,V>
V[]getRow(Matrix2D<R,C,V> matrix, int rowIndex)
static void
maskMissing(cern.colt.matrix.DoubleMatrix2D source, cern.colt.matrix.DoubleMatrix2D target)
static cern.colt.list.BooleanArrayList
matchingCriteria(cern.colt.matrix.DoubleMatrix1D x, DoubleFunction<Boolean> criterion)
static cern.colt.matrix.DoubleMatrix1D
multWithMissing(cern.colt.matrix.DoubleMatrix1D a, cern.colt.matrix.DoubleMatrix2D b)
static cern.colt.matrix.DoubleMatrix1D
multWithMissing(cern.colt.matrix.DoubleMatrix2D a, cern.colt.matrix.DoubleMatrix1D b)
static cern.colt.matrix.DoubleMatrix2D
multWithMissing(cern.colt.matrix.DoubleMatrix2D a, cern.colt.matrix.DoubleMatrix2D b)
Multiple two matrices, tolerate missing values.static List<Integer>
notNearlyZeroIndices(cern.colt.matrix.DoubleMatrix1D d)
static cern.colt.matrix.DoubleMatrix1D
removeMissing(cern.colt.matrix.DoubleMatrix1D x)
static cern.colt.matrix.DoubleMatrix1D
removeMissingOrInfinite(cern.colt.matrix.DoubleMatrix1D data)
static cern.colt.matrix.DoubleMatrix1D
removeMissingOrInfinite(cern.colt.matrix.DoubleMatrix1D reference, cern.colt.matrix.DoubleMatrix1D data)
Remove values from data corresponding to missing values in reference.static void
replaceValues(cern.colt.matrix.DoubleMatrix1D x, cern.colt.list.BooleanArrayList toReplace, cern.colt.matrix.DoubleMatrix1D replacements)
Perform the awkward operation of substituting certain values in a vector from values in another vector.static cern.colt.matrix.DoubleMatrix1D
select(cern.colt.matrix.DoubleMatrix1D v, Collection<Integer> selected)
static cern.colt.matrix.DoubleMatrix2D
selectColumns(cern.colt.matrix.DoubleMatrix2D n, Collection<Integer> selected)
static cern.colt.matrix.DoubleMatrix2D
selectColumnsAndRows(cern.colt.matrix.DoubleMatrix2D n, Collection<Integer> selected)
static cern.colt.matrix.DoubleMatrix2D
selectRows(cern.colt.matrix.DoubleMatrix2D n, Collection<Integer> selected)
static int
sizeWithoutMissingValues(cern.colt.matrix.DoubleMatrix1D list)
static cern.colt.matrix.DoubleMatrix1D
stripByCriterion(cern.colt.matrix.DoubleMatrix1D x, DoubleFunction<Boolean> criterion)
static cern.colt.matrix.DoubleMatrix1D
stripNegative(cern.colt.matrix.DoubleMatrix1D x)
static cern.colt.matrix.DoubleMatrix1D
stripNonOK(cern.colt.matrix.DoubleMatrix1D x, cern.colt.list.BooleanArrayList ok)
static cern.colt.list.DoubleArrayList
toList(cern.colt.matrix.DoubleMatrix1D vector)
Makes a copy
-
-
-
Method Detail
-
containsNearlyZeros
public static boolean containsNearlyZeros(cern.colt.matrix.DoubleMatrix1D d)
- Parameters:
d
-- Returns:
- true if any of the values are very close to zero.
-
diagonal
public static cern.colt.matrix.DoubleMatrix1D diagonal(cern.colt.matrix.DoubleMatrix2D matrix)
Extract the diagonal from a matrix.- Parameters:
matrix
-- Returns:
-
dropColumn
public static cern.colt.matrix.DoubleMatrix2D dropColumn(cern.colt.matrix.DoubleMatrix2D n, int indexToDrop)
- Parameters:
n
-indexToDrop
-- Returns:
-
dropColumns
public static cern.colt.matrix.DoubleMatrix2D dropColumns(cern.colt.matrix.DoubleMatrix2D n, Collection<Integer> droppedColumns)
- Parameters:
n
-droppedColumns
-
-
fromList
public static cern.colt.matrix.DoubleMatrix1D fromList(cern.colt.list.DoubleArrayList list)
Makes a copy- Parameters:
list
-- Returns:
-
getObject
public static <R,C,V> V getObject(Matrix2D<R,C,V> matrix, int rowIndex, int colIndex)
- Type Parameters:
R
-C
-V
-- Parameters:
matrix
-rowIndex
-colIndex
-- Returns:
-
getRow
public static <R,C,V> V[] getRow(Matrix2D<R,C,V> matrix, int rowIndex)
- Type Parameters:
R
-C
-V
-- Parameters:
matrix
-rowIndex
-- Returns:
-
maskMissing
public static void maskMissing(cern.colt.matrix.DoubleMatrix2D source, cern.colt.matrix.DoubleMatrix2D target)
- Parameters:
source
- the source of information about missing valuestarget
- the target where we want to convert values to missing
-
multWithMissing
public static cern.colt.matrix.DoubleMatrix1D multWithMissing(cern.colt.matrix.DoubleMatrix1D a, cern.colt.matrix.DoubleMatrix2D b)
-
multWithMissing
public static cern.colt.matrix.DoubleMatrix1D multWithMissing(cern.colt.matrix.DoubleMatrix2D a, cern.colt.matrix.DoubleMatrix1D b)
- Parameters:
a
-b
-- Returns:
-
multWithMissing
public static cern.colt.matrix.DoubleMatrix2D multWithMissing(cern.colt.matrix.DoubleMatrix2D a, cern.colt.matrix.DoubleMatrix2D b)
Multiple two matrices, tolerate missing values.- Parameters:
a
-b
-- Returns:
-
notNearlyZeroIndices
public static List<Integer> notNearlyZeroIndices(cern.colt.matrix.DoubleMatrix1D d)
-
removeMissingOrInfinite
public static cern.colt.matrix.DoubleMatrix1D removeMissingOrInfinite(cern.colt.matrix.DoubleMatrix1D data)
- Parameters:
data
-- Returns:
- a copy of the data with missing or infinite values removed (might be empty!)
-
removeMissing
public static final cern.colt.matrix.DoubleMatrix1D removeMissing(cern.colt.matrix.DoubleMatrix1D x)
- Parameters:
x
-- Returns:
- a copy of x with missing values removed
-
removeMissingOrInfinite
public static cern.colt.matrix.DoubleMatrix1D removeMissingOrInfinite(cern.colt.matrix.DoubleMatrix1D reference, cern.colt.matrix.DoubleMatrix1D data)
Remove values from data corresponding to missing values in reference.- Parameters:
reference
-data
-- Returns:
-
stripNegative
public static final cern.colt.matrix.DoubleMatrix1D stripNegative(cern.colt.matrix.DoubleMatrix1D x)
-
stripByCriterion
public static final cern.colt.matrix.DoubleMatrix1D stripByCriterion(cern.colt.matrix.DoubleMatrix1D x, DoubleFunction<Boolean> criterion)
-
conjunction
public static final cern.colt.list.BooleanArrayList conjunction(cern.colt.list.BooleanArrayList a, cern.colt.list.BooleanArrayList b)
Compute the conjuction (logical 'and') of two boolean vectors- Parameters:
a
-b
-- Returns:
- conjunction of a and b
-
matchingCriteria
public static cern.colt.list.BooleanArrayList matchingCriteria(cern.colt.matrix.DoubleMatrix1D x, DoubleFunction<Boolean> criterion)
- Parameters:
x
- vector to be operated oncriterion
- a function that returns a boolean if a double matches the desired criteria- Returns:
- booleans indicating which values in x match the criterion func
-
applyToIndicesMatchingCriteria
public static cern.colt.matrix.DoubleMatrix1D applyToIndicesMatchingCriteria(cern.colt.matrix.DoubleMatrix1D x, DoubleFunction<Boolean> criterion, DoubleFunction<Double> action)
- Parameters:
x
- vector to be operated oncriterion
- criterion used to test values if they should be acted on.action
- function applied to values if they match the criterion- Returns:
- copy of x in which the values meeting the criterion have been replaced with the return value of action, otherwise unchanged from the original x
-
stripNonOK
public static final cern.colt.matrix.DoubleMatrix1D stripNonOK(cern.colt.matrix.DoubleMatrix1D x, cern.colt.list.BooleanArrayList ok)
- Parameters:
x
- a vector of values to be filteredok
- a list of booleans defining which values are "ok".- Returns:
- A copy of x that has the non-ok values removed.
-
replaceValues
public static void replaceValues(cern.colt.matrix.DoubleMatrix1D x, cern.colt.list.BooleanArrayList toReplace, cern.colt.matrix.DoubleMatrix1D replacements)
Perform the awkward operation of substituting certain values in a vector from values in another vector.- Parameters:
x
- vector to be operated on in place (it will be modified).toReplace
- boolean indicators of same length of x, 'true' indicates a value to be replaced in x with a value from 'replacements'; 'false' will be unmodified in x.replacements
- the replacements, in order, to be substituted in x where toReplace(i) is true. This vector can be shorter than x.
-
select
public static cern.colt.matrix.DoubleMatrix1D select(cern.colt.matrix.DoubleMatrix1D v, Collection<Integer> selected)
-
selectColumns
public static cern.colt.matrix.DoubleMatrix2D selectColumns(cern.colt.matrix.DoubleMatrix2D n, Collection<Integer> selected)
-
selectColumnsAndRows
public static cern.colt.matrix.DoubleMatrix2D selectColumnsAndRows(cern.colt.matrix.DoubleMatrix2D n, Collection<Integer> selected)
- Parameters:
n
- square matrixselected
-- Returns:
-
selectRows
public static cern.colt.matrix.DoubleMatrix2D selectRows(cern.colt.matrix.DoubleMatrix2D n, Collection<Integer> selected)
-
sizeWithoutMissingValues
public static int sizeWithoutMissingValues(cern.colt.matrix.DoubleMatrix1D list)
-
toList
public static cern.colt.list.DoubleArrayList toList(cern.colt.matrix.DoubleMatrix1D vector)
Makes a copy- Parameters:
vector
-- Returns:
-
-