|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectorg.apache.commons.math.linear.MatrixUtils
public class MatrixUtils
A collection of static methods that operate on or return matrices.
Nested Class Summary | |
---|---|
private static class |
MatrixUtils.BigFractionMatrixConverter
Converter for FieldMatrix /BigFraction . |
private static class |
MatrixUtils.FractionMatrixConverter
Converter for FieldMatrix /Fraction . |
Constructor Summary | |
---|---|
private |
MatrixUtils()
Private constructor. |
Method Summary | ||
---|---|---|
static Array2DRowRealMatrix |
bigFractionMatrixToRealMatrix(FieldMatrix<BigFraction> m)
Convert a FieldMatrix /BigFraction matrix to a RealMatrix . |
|
static void |
checkAdditionCompatible(AnyMatrix left,
AnyMatrix right)
Check if matrices are addition compatible |
|
static void |
checkColumnIndex(AnyMatrix m,
int column)
Check if a column index is valid. |
|
static void |
checkMultiplicationCompatible(AnyMatrix left,
AnyMatrix right)
Check if matrices are multiplication compatible |
|
static void |
checkRowIndex(AnyMatrix m,
int row)
Check if a row index is valid. |
|
static void |
checkSubMatrixIndex(AnyMatrix m,
int[] selectedRows,
int[] selectedColumns)
Check if submatrix ranges indices are valid. |
|
static void |
checkSubMatrixIndex(AnyMatrix m,
int startRow,
int endRow,
int startColumn,
int endColumn)
Check if submatrix ranges indices are valid. |
|
static void |
checkSubtractionCompatible(AnyMatrix left,
AnyMatrix right)
Check if matrices are subtraction compatible |
|
static BigMatrix |
createBigIdentityMatrix(int dimension)
Deprecated. since 2.0, replaced by createFieldIdentityMatrix(Field, int) |
|
static BigMatrix |
createBigMatrix(BigDecimal[][] data)
Deprecated. since 2.0 replaced by createFieldMatrix(FieldElement[][]) |
|
static BigMatrix |
createBigMatrix(BigDecimal[][] data,
boolean copyArray)
Deprecated. since 2.0 replaced by createFieldMatrix(FieldElement[][]) |
|
static BigMatrix |
createBigMatrix(double[][] data)
Deprecated. since 2.0 replaced by createFieldMatrix(FieldElement[][]) |
|
static BigMatrix |
createBigMatrix(String[][] data)
Deprecated. since 2.0 replaced by createFieldMatrix(FieldElement[][]) |
|
static BigMatrix |
createColumnBigMatrix(BigDecimal[] columnData)
Deprecated. since 2.0 replaced by createColumnFieldMatrix(FieldElement[]) |
|
static BigMatrix |
createColumnBigMatrix(double[] columnData)
Deprecated. since 2.0 replaced by createColumnFieldMatrix(FieldElement[]) |
|
static BigMatrix |
createColumnBigMatrix(String[] columnData)
Deprecated. since 2.0 replaced by createColumnFieldMatrix(FieldElement[]) |
|
static
|
createColumnFieldMatrix(T[] columnData)
Creates a column FieldMatrix using the data from the input
array. |
|
static RealMatrix |
createColumnRealMatrix(double[] columnData)
Creates a column RealMatrix using the data from the input
array. |
|
static
|
createFieldDiagonalMatrix(T[] diagonal)
Returns a diagonal matrix with specified elements. |
|
static
|
createFieldIdentityMatrix(Field<T> field,
int dimension)
Returns dimension x dimension identity matrix. |
|
static
|
createFieldMatrix(Field<T> field,
int rows,
int columns)
Returns a FieldMatrix with specified dimensions. |
|
static
|
createFieldMatrix(T[][] data)
Returns a FieldMatrix whose entries are the the values in the
the input array. |
|
static
|
createFieldVector(T[] data)
Creates a FieldVector using the data from the input array. |
|
static RealMatrix |
createRealDiagonalMatrix(double[] diagonal)
Returns a diagonal matrix with specified elements. |
|
static RealMatrix |
createRealIdentityMatrix(int dimension)
Returns dimension x dimension identity matrix. |
|
static RealMatrix |
createRealMatrix(double[][] data)
Returns a RealMatrix whose entries are the the values in the
the input array. |
|
static RealMatrix |
createRealMatrix(int rows,
int columns)
Returns a RealMatrix with specified dimensions. |
|
static RealVector |
createRealVector(double[] data)
Creates a RealVector using the data from the input array. |
|
static BigMatrix |
createRowBigMatrix(BigDecimal[] rowData)
Deprecated. since 2.0 replaced by createRowFieldMatrix(FieldElement[]) |
|
static BigMatrix |
createRowBigMatrix(double[] rowData)
Deprecated. since 2.0 replaced by createRowFieldMatrix(FieldElement[]) |
|
static BigMatrix |
createRowBigMatrix(String[] rowData)
Deprecated. since 2.0 replaced by createRowFieldMatrix(FieldElement[]) |
|
static
|
createRowFieldMatrix(T[] rowData)
Creates a row FieldMatrix using the data from the input
array. |
|
static RealMatrix |
createRowRealMatrix(double[] rowData)
Creates a row RealMatrix using the data from the input
array. |
|
static void |
deserializeRealMatrix(Object instance,
String fieldName,
ObjectInputStream ois)
Deserialize a RealMatrix field in a class. |
|
static void |
deserializeRealVector(Object instance,
String fieldName,
ObjectInputStream ois)
Deserialize a RealVector field in a class. |
|
static Array2DRowRealMatrix |
fractionMatrixToRealMatrix(FieldMatrix<Fraction> m)
Convert a FieldMatrix /Fraction matrix to a RealMatrix . |
|
static void |
serializeRealMatrix(RealMatrix matrix,
ObjectOutputStream oos)
Serialize a RealMatrix . |
|
static void |
serializeRealVector(RealVector vector,
ObjectOutputStream oos)
Serialize a RealVector . |
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Constructor Detail |
---|
private MatrixUtils()
Method Detail |
---|
public static RealMatrix createRealMatrix(int rows, int columns)
RealMatrix
with specified dimensions.
The type of matrix returned depends on the dimension. Below
212 elements (i.e. 4096 elements or 64×64 for a
square matrix) which can be stored in a 32kB array, a Array2DRowRealMatrix
instance is built. Above this threshold a BlockRealMatrix
instance is built.
The matrix elements are all set to 0.0.
rows
- number of rows of the matrixcolumns
- number of columns of the matrix
createRealMatrix(double[][])
public static <T extends FieldElement<T>> FieldMatrix<T> createFieldMatrix(Field<T> field, int rows, int columns)
FieldMatrix
with specified dimensions.
The type of matrix returned depends on the dimension. Below
212 elements (i.e. 4096 elements or 64×64 for a
square matrix), a FieldMatrix
instance is built. Above
this threshold a BlockFieldMatrix
instance is built.
The matrix elements are all set to field.getZero().
T
- the type of the field elementsfield
- field to which the matrix elements belongrows
- number of rows of the matrixcolumns
- number of columns of the matrix
createFieldMatrix(FieldElement[][])
public static RealMatrix createRealMatrix(double[][] data)
RealMatrix
whose entries are the the values in the
the input array.
The type of matrix returned depends on the dimension. Below
212 elements (i.e. 4096 elements or 64×64 for a
square matrix) which can be stored in a 32kB array, a Array2DRowRealMatrix
instance is built. Above this threshold a BlockRealMatrix
instance is built.
The input array is copied, not referenced.
data
- input array
IllegalArgumentException
- if data
is not rectangular
(not all rows have the same length) or empty
NullPointerException
- if either data
or
data[0]
is nullcreateRealMatrix(int, int)
public static <T extends FieldElement<T>> FieldMatrix<T> createFieldMatrix(T[][] data)
FieldMatrix
whose entries are the the values in the
the input array.
The type of matrix returned depends on the dimension. Below
212 elements (i.e. 4096 elements or 64×64 for a
square matrix), a FieldMatrix
instance is built. Above
this threshold a BlockFieldMatrix
instance is built.
The input array is copied, not referenced.
T
- the type of the field elementsdata
- input array
IllegalArgumentException
- if data
is not rectangular
(not all rows have the same length) or empty
NullPointerException
- if either data
or
data[0]
is nullcreateFieldMatrix(Field, int, int)
public static RealMatrix createRealIdentityMatrix(int dimension)
dimension x dimension
identity matrix.
dimension
- dimension of identity matrix to generate
IllegalArgumentException
- if dimension is not positivepublic static <T extends FieldElement<T>> FieldMatrix<T> createFieldIdentityMatrix(Field<T> field, int dimension)
dimension x dimension
identity matrix.
T
- the type of the field elementsfield
- field to which the elements belongdimension
- dimension of identity matrix to generate
IllegalArgumentException
- if dimension is not positive@Deprecated public static BigMatrix createBigIdentityMatrix(int dimension)
createFieldIdentityMatrix(Field, int)
dimension x dimension
identity matrix.
dimension
- dimension of identity matrix to generate
IllegalArgumentException
- if dimension is not positivepublic static RealMatrix createRealDiagonalMatrix(double[] diagonal)
diagonal
- diagonal elements of the matrix (the array elements
will be copied)
public static <T extends FieldElement<T>> FieldMatrix<T> createFieldDiagonalMatrix(T[] diagonal)
T
- the type of the field elementsdiagonal
- diagonal elements of the matrix (the array elements
will be copied)
@Deprecated public static BigMatrix createBigMatrix(double[][] data)
createFieldMatrix(FieldElement[][])
BigMatrix
whose entries are the the values in the
the input array. The input array is copied, not referenced.
data
- input array
IllegalArgumentException
- if data
is not rectangular
(not all rows have the same length) or empty
NullPointerException
- if data is null@Deprecated public static BigMatrix createBigMatrix(BigDecimal[][] data)
createFieldMatrix(FieldElement[][])
BigMatrix
whose entries are the the values in the
the input array. The input array is copied, not referenced.
data
- input array
IllegalArgumentException
- if data
is not rectangular
(not all rows have the same length) or empty
NullPointerException
- if data is null@Deprecated public static BigMatrix createBigMatrix(BigDecimal[][] data, boolean copyArray)
createFieldMatrix(FieldElement[][])
BigMatrix
whose entries are the the values in the
the input array.
If an array is built specially in order to be embedded in a
BigMatrix and not used directly, the
copyArray
may be
set to false
data
- data for new matrixcopyArray
- if true, the input array will be copied, otherwise
it will be referenced
IllegalArgumentException
- if data
is not rectangular
(not all rows have the same length) or empty
NullPointerException
- if data
is nullcreateRealMatrix(double[][])
@Deprecated public static BigMatrix createBigMatrix(String[][] data)
createFieldMatrix(FieldElement[][])
BigMatrix
whose entries are the the values in the
the input array. The input array is copied, not referenced.
data
- input array
IllegalArgumentException
- if data
is not rectangular
(not all rows have the same length) or empty
NullPointerException
- if data is nullpublic static RealVector createRealVector(double[] data)
RealVector
using the data from the input array.
data
- the input data
IllegalArgumentException
- if data
is empty
NullPointerException
- if data
is nullpublic static <T extends FieldElement<T>> FieldVector<T> createFieldVector(T[] data)
FieldVector
using the data from the input array.
T
- the type of the field elementsdata
- the input data
IllegalArgumentException
- if data
is empty
NullPointerException
- if data
is nullpublic static RealMatrix createRowRealMatrix(double[] rowData)
RealMatrix
using the data from the input
array.
rowData
- the input row data
IllegalArgumentException
- if rowData
is empty
NullPointerException
- if rowData
is nullpublic static <T extends FieldElement<T>> FieldMatrix<T> createRowFieldMatrix(T[] rowData)
FieldMatrix
using the data from the input
array.
T
- the type of the field elementsrowData
- the input row data
IllegalArgumentException
- if rowData
is empty
NullPointerException
- if rowData
is null@Deprecated public static BigMatrix createRowBigMatrix(double[] rowData)
createRowFieldMatrix(FieldElement[])
BigMatrix
using the data from the input
array.
rowData
- the input row data
IllegalArgumentException
- if rowData
is empty
NullPointerException
- if rowData
is null@Deprecated public static BigMatrix createRowBigMatrix(BigDecimal[] rowData)
createRowFieldMatrix(FieldElement[])
BigMatrix
using the data from the input
array.
rowData
- the input row data
IllegalArgumentException
- if rowData
is empty
NullPointerException
- if rowData
is null@Deprecated public static BigMatrix createRowBigMatrix(String[] rowData)
createRowFieldMatrix(FieldElement[])
BigMatrix
using the data from the input
array.
rowData
- the input row data
IllegalArgumentException
- if rowData
is empty
NullPointerException
- if rowData
is nullpublic static RealMatrix createColumnRealMatrix(double[] columnData)
RealMatrix
using the data from the input
array.
columnData
- the input column data
IllegalArgumentException
- if columnData
is empty
NullPointerException
- if columnData
is nullpublic static <T extends FieldElement<T>> FieldMatrix<T> createColumnFieldMatrix(T[] columnData)
FieldMatrix
using the data from the input
array.
T
- the type of the field elementscolumnData
- the input column data
IllegalArgumentException
- if columnData
is empty
NullPointerException
- if columnData
is null@Deprecated public static BigMatrix createColumnBigMatrix(double[] columnData)
createColumnFieldMatrix(FieldElement[])
BigMatrix
using the data from the input
array.
columnData
- the input column data
IllegalArgumentException
- if columnData
is empty
NullPointerException
- if columnData
is null@Deprecated public static BigMatrix createColumnBigMatrix(BigDecimal[] columnData)
createColumnFieldMatrix(FieldElement[])
BigMatrix
using the data from the input
array.
columnData
- the input column data
IllegalArgumentException
- if columnData
is empty
NullPointerException
- if columnData
is null@Deprecated public static BigMatrix createColumnBigMatrix(String[] columnData)
createColumnFieldMatrix(FieldElement[])
BigMatrix
using the data from the input
array.
columnData
- the input column data
IllegalArgumentException
- if columnData
is empty
NullPointerException
- if columnData
is nullpublic static void checkRowIndex(AnyMatrix m, int row)
m
- matrix containing the submatrixrow
- row index to check
MatrixIndexException
- if index is not validpublic static void checkColumnIndex(AnyMatrix m, int column) throws MatrixIndexException
m
- matrix containing the submatrixcolumn
- column index to check
MatrixIndexException
- if index is not validpublic static void checkSubMatrixIndex(AnyMatrix m, int startRow, int endRow, int startColumn, int endColumn)
m
- matrix containing the submatrixstartRow
- Initial row indexendRow
- Final row indexstartColumn
- Initial column indexendColumn
- Final column index
MatrixIndexException
- if the indices are not validpublic static void checkSubMatrixIndex(AnyMatrix m, int[] selectedRows, int[] selectedColumns) throws MatrixIndexException
m
- matrix containing the submatrixselectedRows
- Array of row indices.selectedColumns
- Array of column indices.
MatrixIndexException
- if row or column selections are not validpublic static void checkAdditionCompatible(AnyMatrix left, AnyMatrix right) throws IllegalArgumentException
left
- left hand side matrixright
- right hand side matrix
IllegalArgumentException
- if matrices are not addition compatiblepublic static void checkSubtractionCompatible(AnyMatrix left, AnyMatrix right) throws IllegalArgumentException
left
- left hand side matrixright
- right hand side matrix
IllegalArgumentException
- if matrices are not subtraction compatiblepublic static void checkMultiplicationCompatible(AnyMatrix left, AnyMatrix right) throws IllegalArgumentException
left
- left hand side matrixright
- right hand side matrix
IllegalArgumentException
- if matrices are not multiplication compatiblepublic static Array2DRowRealMatrix fractionMatrixToRealMatrix(FieldMatrix<Fraction> m)
FieldMatrix
/Fraction
matrix to a RealMatrix
.
m
- matrix to convert
public static Array2DRowRealMatrix bigFractionMatrixToRealMatrix(FieldMatrix<BigFraction> m)
FieldMatrix
/BigFraction
matrix to a RealMatrix
.
m
- matrix to convert
public static void serializeRealVector(RealVector vector, ObjectOutputStream oos) throws IOException
RealVector
.
This method is intended to be called from within a private
writeObject
method (after a call to
oos.defaultWriteObject()
) in a class that has a
RealVector
field, which should be declared transient
.
This way, the default handling does not serialize the vector (the RealVector
interface is not serializable by default) but this method does
serialize it specifically.
The following example shows how a simple class with a name and a real vector should be written:
public class NamedVector implements Serializable {
private final String name;
private final transient RealVector coefficients;
// omitted constructors, getters ...
private void writeObject(ObjectOutputStream oos) throws IOException {
oos.defaultWriteObject(); // takes care of name field
MatrixUtils.serializeRealVector(coefficients, oos);
}
private void readObject(ObjectInputStream ois) throws ClassNotFoundException, IOException {
ois.defaultReadObject(); // takes care of name field
MatrixUtils.deserializeRealVector(this, "coefficients", ois);
}
}
vector
- real vector to serializeoos
- stream where the real vector should be written
IOException
- if object cannot be written to streamdeserializeRealVector(Object, String, ObjectInputStream)
public static void deserializeRealVector(Object instance, String fieldName, ObjectInputStream ois) throws ClassNotFoundException, IOException
RealVector
field in a class.
This method is intended to be called from within a private
readObject
method (after a call to
ois.defaultReadObject()
) in a class that has a
RealVector
field, which should be declared transient
.
This way, the default handling does not deserialize the vector (the RealVector
interface is not serializable by default) but this method does
deserialize it specifically.
instance
- instance in which the field must be set upfieldName
- name of the field within the class (may be private and final)ois
- stream from which the real vector should be read
ClassNotFoundException
- if a class in the stream cannot be found
IOException
- if object cannot be read from the streamserializeRealVector(RealVector, ObjectOutputStream)
public static void serializeRealMatrix(RealMatrix matrix, ObjectOutputStream oos) throws IOException
RealMatrix
.
This method is intended to be called from within a private
writeObject
method (after a call to
oos.defaultWriteObject()
) in a class that has a
RealMatrix
field, which should be declared transient
.
This way, the default handling does not serialize the matrix (the RealMatrix
interface is not serializable by default) but this method does
serialize it specifically.
The following example shows how a simple class with a name and a real matrix should be written:
public class NamedMatrix implements Serializable {
private final String name;
private final transient RealMatrix coefficients;
// omitted constructors, getters ...
private void writeObject(ObjectOutputStream oos) throws IOException {
oos.defaultWriteObject(); // takes care of name field
MatrixUtils.serializeRealMatrix(coefficients, oos);
}
private void readObject(ObjectInputStream ois) throws ClassNotFoundException, IOException {
ois.defaultReadObject(); // takes care of name field
MatrixUtils.deserializeRealMatrix(this, "coefficients", ois);
}
}
matrix
- real matrix to serializeoos
- stream where the real matrix should be written
IOException
- if object cannot be written to streamdeserializeRealMatrix(Object, String, ObjectInputStream)
public static void deserializeRealMatrix(Object instance, String fieldName, ObjectInputStream ois) throws ClassNotFoundException, IOException
RealMatrix
field in a class.
This method is intended to be called from within a private
readObject
method (after a call to
ois.defaultReadObject()
) in a class that has a
RealMatrix
field, which should be declared transient
.
This way, the default handling does not deserialize the matrix (the RealMatrix
interface is not serializable by default) but this method does
deserialize it specifically.
instance
- instance in which the field must be set upfieldName
- name of the field within the class (may be private and final)ois
- stream from which the real matrix should be read
ClassNotFoundException
- if a class in the stream cannot be found
IOException
- if object cannot be read from the streamserializeRealMatrix(RealMatrix, ObjectOutputStream)
|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |