org.jblas
Class FloatMatrix

java.lang.Object
  extended by org.jblas.FloatMatrix
All Implemented Interfaces:
java.io.Serializable

public class FloatMatrix
extends java.lang.Object
implements java.io.Serializable

A general matrix class for float typed values. Don't be intimidated by the large number of methods this function defines. Most are overloads provided for ease of use. For example, for each arithmetic operation, up to six overloaded versions exist to handle in-place computations, and scalar arguments.

Construction

To construct a two-dimensional matrices, you can use the following constructors and static methods.

MethodDescription
FloatMatrix(m,n, [value1, value2, value3...])Values are filled in row by row.
FloatMatrix(new float[][] {{value1, value2, ...}, ...}Inner arrays are columns.
FloatMatrix.zeros(m,n) Initial values set to 0.0f.
FloatMatrix.ones(m,n) Initial values set to 1.0f.
FloatMatrix.rand(m,n) Values drawn at random between 0.0f and 1.0f.
FloatMatrix.randn(m,n) Values drawn from normal distribution.
FloatMatrix.eye(n) Unit matrix (values 0.0f except for 1.0f on the diagonal).
FloatMatrix.diag(array) Diagonal matrix with given diagonal elements.

Alternatively, you can construct (column) vectors, if you just supply the length using the following constructors and static methods.

MethodDescription
FloatMatrix(m)Constructs a column vector.
FloatMatrix(new float[] {value1, value2, ...})Constructs a column vector.
FloatMatrix.zeros(m) Initial values set to 0.0f.
FloatMatrix.ones(m) Initial values set to 1.0f.
FloatMatrix.rand(m) Values drawn at random between 0.0f and 1.0f.
FloatMatrix.randn(m) Values drawn from normal distribution.

You can also construct new matrices by concatenating matrices either horziontally or vertically:

MethodDescription
x.concatHorizontally(y)New matrix will be x next to y.
x.concatVertically(y)New matrix will be x atop y.

Element Access, Copying and Duplication

To access individual elements, or whole rows and columns, use the following methods:

x.MethodDescription
x.get(i,j)Get element in row i and column j.
x.put(i, j, v)Set element in row i and column j to value v
x.get(i)Get the ith element of the matrix (traversing rows first).
x.put(i, v)Set the ith element of the matrix (traversing rows first).
x.getColumn(i)Get a copy of column i.
x.putColumn(i, c)Put matrix c into column i.
x.getRow(i)Get a copy of row i.
x.putRow(i, c)Put matrix c into row i.
x.swapColumns(i, j)Swap the contents of columns i and j.
x.swapRows(i, j)Swap the contents of columns i and j.

For get and put, you can also pass integer arrays, FloatMatrix objects, or Range objects, which then specify the indices used as follows:

When using put with multiple indices, the assigned object must have the correct size or be a scalar.

There exist the following Range objects. The Class RangeUtils also contains the a number of handy helper methods for constructing these ranges.

Class RangeUtils method Indices
AllRange all() All legal indices.
PointRange point(i) A single point.
IntervalRange interval(a, b) All indices from a to b (inclusive)
IndicesRange indices(int[]) The specified indices.
indices(FloatMatrix)The specified indices.
find(FloatMatrix)The non-zero entries of the matrix.

The following methods can be used for duplicating and copying matrices.

MethodDescription
x.dup()Get a copy of x.
x.copy(y)Copy the contents of y to x (possible resizing x).

Size and Shape

The following methods permit to acces the size of a matrix and change its size or shape.

x.MethodDescription
x.rowsNumber of rows.
x.columnsNumber of columns.
x.lengthTotal number of elements.
x.isEmpty()Checks whether rows == 0 and columns == 0.
x.isRowVector()Checks whether rows == 1.
x.isColumnVector()Checks whether columns == 1.
x.isVector()Checks whether rows == 1 or columns == 1.
x.isSquare()Checks whether rows == columns.
x.isScalar()Checks whether length == 1.
x.resize(r, c)Resize the matrix to r rows and c columns, discarding the content.
x.reshape(r, c)Resize the matrix to r rows and c columns.
Number of elements must not change.

The size is stored in the rows and columns member variables. The total number of elements is stored in length. Do not change these values unless you know what you're doing!

Arithmetics

The usual arithmetic operations are implemented. Each operation exists in a in-place version, recognizable by the suffix "i", to which you can supply the result matrix (or this is used, if missing). Using in-place operations can also lead to a smaller memory footprint, as the number of temporary objects which are directly garbage collected again is reduced.

Whenever you specify a result vector, the result vector must already have the correct dimensions.

For example, you can add two matrices using the add method. If you want to store the result in of x + y in z, type x.addi(y, z) // computes x = y + z. Even in-place methods return the result, such that you can easily chain in-place methods, for example: x.addi(y).addi(z) // computes x += y; x += z

Methods which operate element-wise only make sure that the length of the matrices is correct. Therefore, you can add a 3 * 3 matrix to a 1 * 9 matrix, for example.

Finally, there exist versions which take floats instead of FloatMatrix Objects as arguments. These then compute the operation with the same value as the right-hand-side. The same effect can be achieved by passing a FloatMatrix with exactly one element.

Operation Method Comment
x + y x.add(y)
x - y x.sub(y), y.rsub(x) rsub subtracts left from right hand side
x * y x.mul(y) element-wise multiplication
x.mmul(y)matrix-matrix multiplication
x.dot(y) scalar-product
x / y x.div(y), y.rdiv(x) rdiv divides right hand side by left hand side.
- x x.neg()

There also exist operations which work on whole columns or rows.

Method Description
x.addRowVectoradds a vector to each row (addiRowVector works in-place)
x.addColumnVectoradds a vector to each column
x.subRowVectorsubtracts a vector from each row
x.subColumnVectorsubtracts a vector from each column
x.mulRowMultiplies a row by a scalar
x.mulColumnmultiplies a row by a column

In principle, you could achieve the same result by first calling getColumn(), adding, and then calling putColumn, but these methods are much faster.

The following comparison operations are available

Operation Method
x < y x.lt(y)
x <= y x.le(y)
x > y x.gt(y)
x >= y x.ge(y)
x == y x.eq(y)
x != y x.ne(y)

Logical operations are also supported. For these operations, a value different from zero is treated as "true" and zero is treated as "false". All operations are carried out elementwise.

Operation Method
x & y x.and(y)
x | y x.or(y)
x ^ y x.xor(y)
! x x.not()

Finally, there are a few more methods to compute various things:

Method Description
x.max() Return maximal element
x.argmax() Return index of largest element
x.min() Return minimal element
x.argmin() Return index of largest element
x.columnMins() Return column-wise minima
x.columnArgmins() Return column-wise index of minima
x.columnMaxs() Return column-wise maxima
x.columnArgmaxs() Return column-wise index of maxima

Author:
Mikio Braun, Johannes Schaback
See Also:
Serialized Form

Nested Class Summary
 class FloatMatrix.ColumnsAsListView
           
 class FloatMatrix.ElementsAsListView
          A wrapper which allows to view a matrix as a List of Doubles (read-only!).
 class FloatMatrix.RowsAsListView
           
 
Field Summary
 int columns
          Number of columns.
 float[] data
          The actual data stored by rows (that is, row 0, row 1...).
static FloatMatrix EMPTY
           
 int length
          Total number of elements (for convenience).
 int rows
          Number of rows.
 
Constructor Summary
FloatMatrix()
          Creates a new FloatMatrix of size 0 times 0.
FloatMatrix(float[] newData)
           
FloatMatrix(float[][] data)
          Creates a new n times m FloatMatrix from the given n times m 2D data array.
FloatMatrix(int len)
          Create a Matrix of length len.
FloatMatrix(int newRows, int newColumns)
          Creates a new n times m FloatMatrix.
FloatMatrix(int newRows, int newColumns, float... newData)
          Create a new matrix with newRows rows, newColumns columns using newData> as the data.
FloatMatrix(java.util.List<java.lang.Float> data)
           
FloatMatrix(java.lang.String filename)
          Creates a new matrix by reading it from a file.
 
Method Summary
 FloatMatrix add(float v)
          Add a scalar.
 FloatMatrix add(FloatMatrix other)
          Add a matrix (in place).
 FloatMatrix addColumnVector(FloatMatrix x)
          Add a vector to all columns of the matrix.
 FloatMatrix addi(float v)
          Add a scalar (in place).
 FloatMatrix addi(float v, FloatMatrix result)
          Add a scalar to a matrix (in-place).
 FloatMatrix addi(FloatMatrix other)
          Add a matrix (in place).
 FloatMatrix addi(FloatMatrix other, FloatMatrix result)
          Add two matrices (in-place).
 FloatMatrix addiColumnVector(FloatMatrix x)
          Add a vector to all columns of the matrix (in-place).
 FloatMatrix addiRowVector(FloatMatrix x)
          Add a row vector to all rows of the matrix (in place).
 FloatMatrix addRowVector(FloatMatrix x)
          Add a row to all rows of the matrix.
 FloatMatrix and(float value)
          Compute elementwise logical and against a scalar.
 FloatMatrix and(FloatMatrix other)
          Compute elementwise logical and.
 FloatMatrix andi(float value)
          Compute elementwise logical and against a scalar (in-place).
 FloatMatrix andi(float value, FloatMatrix result)
          Compute elementwise logical and against a scalar (in-place).
 FloatMatrix andi(FloatMatrix other)
          Compute elementwise logical and (in-place).
 FloatMatrix andi(FloatMatrix other, FloatMatrix result)
          Compute elementwise logical and (in-place).
 int argmax()
          Returns the linear index of the maximal element of the matrix.
 int argmin()
          Returns the linear index of the minimal element.
 void assertMultipliesWith(FloatMatrix a)
          Throws SizeException unless matrices can be multiplied with one another.
 void assertSameLength(FloatMatrix a)
          Throws SizeException unless matrices have the same length.
 void assertSameSize(FloatMatrix a)
          Throws SizeException unless two matrices have the same size.
 void assertSquare()
          Throw SizeException unless matrix is square.
 void checkColumns(int c)
          Asserts that the amtrix has a certain number of columns.
 void checkLength(int l)
          Assert that the matrix has a certain length.
 void checkRows(int r)
          Asserts that the matrix has a certain number of rows.
 int[] columnArgmaxs()
          Return index of minimal element per column.
 int[] columnArgmins()
          Return index of minimal element per column.
 FloatMatrix columnMaxs()
          Return column-wise maximums.
 FloatMatrix columnMeans()
          Return a vector containing the means of all columns.
 FloatMatrix columnMins()
          Return column-wise minimums.
 java.util.List<FloatMatrix> columnsAsList()
           
 int[][] columnSortingPermutations()
          Return matrix of indices which sort all columns.
 FloatMatrix columnSums()
          Return a vector containing the sums of the columns (having number of columns many entries)
static FloatMatrix concatHorizontally(FloatMatrix A, FloatMatrix B)
          Concatenates two matrices horizontally.
static FloatMatrix concatVertically(FloatMatrix A, FloatMatrix B)
          Concatenates two matrices vertically.
 FloatMatrix copy(FloatMatrix a)
          Copy FloatMatrix a to this.
 FloatMatrix cumulativeSum()
          Computes the cumulative sum, that is, the sum of all elements of the matrix up to a given index in linear addressing.
 FloatMatrix cumulativeSumi()
          Computes the cumulative sum, that is, the sum of all elements of the matrix up to a given index in linear addressing (in-place).
 FloatMatrix diag()
          Returns the diagonal of the matrix.
static FloatMatrix diag(FloatMatrix x)
          Creates a new matrix where the values of the given vector are the diagonal values of the matrix.
 float distance1(FloatMatrix other)
          Returns the (1-norm) distance.
 float distance2(FloatMatrix other)
          Returns the (euclidean) distance.
 FloatMatrix div(float v)
          Elementwise divide by a scalar.
 FloatMatrix div(FloatMatrix other)
          Elementwise divide by a matrix (in place).
 FloatMatrix divColumnVector(FloatMatrix x)
           
 FloatMatrix divi(float v)
          Elementwise divide by a scalar (in place).
 FloatMatrix divi(float a, FloatMatrix result)
          Elementwise division with a scalar (in-place).
 FloatMatrix divi(FloatMatrix other)
          Elementwise divide by a matrix (in place).
 FloatMatrix divi(FloatMatrix other, FloatMatrix result)
          Elementwise division (in-place).
 FloatMatrix diviColumnVector(FloatMatrix x)
           
 FloatMatrix diviRowVector(FloatMatrix x)
           
 FloatMatrix divRowVector(FloatMatrix x)
           
 float dot(FloatMatrix other)
          The scalar product of this with other.
 FloatMatrix dup()
          Returns a duplicate of this matrix.
 java.util.List<java.lang.Float> elementsAsList()
           
 FloatMatrix eq(float value)
          test for equality against a scalar.
 FloatMatrix eq(FloatMatrix other)
          Test for equality.
 FloatMatrix eqi(float value)
          Test for equality against a scalar (in-place).
 FloatMatrix eqi(float value, FloatMatrix result)
          Test for equality against a scalar (in-place).
 FloatMatrix eqi(FloatMatrix other)
          Test for equality (in-place).
 FloatMatrix eqi(FloatMatrix other, FloatMatrix result)
          Test for equality (in-place).
 boolean equals(java.lang.Object o)
          Compare two matrices.
static FloatMatrix eye(int n)
          Construct a new n-by-n identity matrix.
 FloatMatrix fill(float value)
          Set all elements to a value.
 int[] findIndices()
          Find the linear indices of all non-zero elements.
 FloatMatrix ge(float value)
          test for "greater than or equal" against a scalar.
 FloatMatrix ge(FloatMatrix other)
          Test for "greater than or equal".
 FloatMatrix gei(float value)
          Test for "greater than or equal" against a scalar (in-place).
 FloatMatrix gei(float value, FloatMatrix result)
          Test for "greater than or equal" against a scalar (in-place).
 FloatMatrix gei(FloatMatrix other)
          Test for "greater than or equal" (in-place).
 FloatMatrix gei(FloatMatrix other, FloatMatrix result)
          Test for "greater than or equal" (in-place).
 FloatMatrix get(FloatMatrix indices)
          Get elements specified by the non-zero entries of the passed matrix.
 FloatMatrix get(FloatMatrix rindices, FloatMatrix cindices)
          Get elements from columns and rows as specified by the non-zero entries of the passed matrices.
 FloatMatrix get(FloatMatrix indices, int c)
          Get elements from a column and rows as specified by the non-zero entries of a matrix.
 float get(int i)
          Get a matrix element (linear indexing).
 FloatMatrix get(int[] indices)
          Get all elements specified by the linear indices.
 FloatMatrix get(int[] indices, int c)
          Get all elements for a given column and the specified rows.
 FloatMatrix get(int[] rindices, int[] cindices)
          Get all elements from the specified rows and columns.
 FloatMatrix get(int r, FloatMatrix indices)
          Get elements from a row and columns as specified by the non-zero entries of a matrix.
 float get(int rowIndex, int columnIndex)
          Retrieve matrix element
 FloatMatrix get(int r, int[] indices)
          Get all elements for a given row and the specified columns.
 FloatMatrix get(int r, Range cs)
           
 FloatMatrix get(Range rs, int c)
           
 FloatMatrix get(Range rs, Range cs)
          Get elements from specified rows and columns.
 FloatMatrix getColumn(int c)
          Get a copy of a column.
 FloatMatrix getColumn(int c, FloatMatrix result)
          Copy a column to the given vector.
 FloatMatrix getColumnRange(int r, int a, int b)
          Get elements from a row and columns a to b.
 int getColumns()
          Get number of columns.
 FloatMatrix getColumns(FloatMatrix cindices)
          Get whole columns as specified by the non-zero entries of a matrix.
 FloatMatrix getColumns(int[] cindices)
          Get whole columns from the passed indices.
 int getLength()
          Get total number of elements.
 FloatMatrix getRange(int a, int b)
          Return all elements with linear index a, a + 1, ..., b - 1.
 FloatMatrix getRange(int ra, int rb, int ca, int cb)
          Get elements from rows ra to rb and columns ca to cb.
 FloatMatrix getRow(int r)
          Get a copy of a row.
 FloatMatrix getRow(int r, FloatMatrix result)
          Copy a row to a given vector.
 FloatMatrix getRowRange(int a, int b, int c)
          Get elements from a column and rows a/tt> to b.
 int getRows()
          Get number of rows.
 FloatMatrix getRows(FloatMatrix rindices)
          Get whole rows as specified by the non-zero entries of a matrix.
 FloatMatrix getRows(int[] rindices)
          Get whole rows from the passed indices.
 FloatMatrix getRows(Range indices)
           
 FloatMatrix getRows(Range indices, FloatMatrix result)
           
 FloatMatrix gt(float value)
          test for "greater than" against a scalar.
 FloatMatrix gt(FloatMatrix other)
          Test for "greater than".
 FloatMatrix gti(float value)
          Test for "greater than" against a scalar (in-place).
 FloatMatrix gti(float value, FloatMatrix result)
          Test for "greater than" against a scalar (in-place).
 FloatMatrix gti(FloatMatrix other)
          Test for "greater than" (in-place).
 FloatMatrix gti(FloatMatrix other, FloatMatrix result)
          Test for "greater than" (in-place).
 int hashCode()
           
 void in(java.io.DataInputStream dis)
          Reads in a matrix from the given data stream.
 int index(int rowIndex, int columnIndex)
          Get index of an element
 int indexColumns(int i)
          Compute the column index of a linear index.
 int indexRows(int i)
          Compute the row index of a linear index.
 boolean isColumnVector()
          Checks whether the matrix is a column vector.
 boolean isEmpty()
          Checks whether the matrix is empty.
 FloatMatrix isInfinite()
           
 FloatMatrix isInfinitei()
           
 FloatMatrix isNaN()
           
 FloatMatrix isNaNi()
           
 boolean isRowVector()
          Checks whether the matrix is a row vector.
 boolean isScalar()
          Test whether a matrix is scalar.
 boolean isSquare()
          Checks whether the matrix is square.
 boolean isVector()
          Checks whether the matrix is a vector.
 FloatMatrix le(float value)
          test for "less than or equal" against a scalar.
 FloatMatrix le(FloatMatrix other)
          Test for "less than or equal".
 FloatMatrix lei(float value)
          Test for "less than or equal" against a scalar (in-place).
 FloatMatrix lei(float value, FloatMatrix result)
          Test for "less than or equal" against a scalar (in-place).
 FloatMatrix lei(FloatMatrix other)
          Test for "less than or equal" (in-place).
 FloatMatrix lei(FloatMatrix other, FloatMatrix result)
          Test for "less than or equal" (in-place).
static FloatMatrix linspace(int lower, int upper, int size)
           
 void load(java.lang.String filename)
          Loads a matrix from a file into this matrix.
static FloatMatrix loadAsciiFile(java.lang.String filename)
           
static FloatMatrix loadCSVFile(java.lang.String filename)
           
static FloatMatrix logspace(float lower, float upper, int size)
           
 FloatMatrix lt(float value)
          test for "less than" against a scalar.
 FloatMatrix lt(FloatMatrix other)
          Test for "less than".
 FloatMatrix lti(float value)
          Test for "less than" against a scalar (in-place).
 FloatMatrix lti(float value, FloatMatrix result)
          Test for "less than" against a scalar (in-place).
 FloatMatrix lti(FloatMatrix other)
          Test for "less than" (in-place).
 FloatMatrix lti(FloatMatrix other, FloatMatrix result)
          Test for "less than" (in-place).
 float max()
          Returns the maximal element of the matrix.
 FloatMatrix max(float v)
           
 FloatMatrix max(FloatMatrix other)
          Computes the maximum between two matrices.
 FloatMatrix maxi(float v)
           
 FloatMatrix maxi(float v, FloatMatrix result)
           
 FloatMatrix maxi(FloatMatrix other)
          Computes the maximum between two matrices.
 FloatMatrix maxi(FloatMatrix other, FloatMatrix result)
          Computes the maximum between two matrices.
 float mean()
          Computes the mean value of all elements in the matrix, that is, x.sum() / x.length.
 float min()
          Returns the minimal element of the matrix.
 FloatMatrix min(float v)
           
 FloatMatrix min(FloatMatrix other)
          Computes the minimum between two matrices.
 FloatMatrix mini(float v)
           
 FloatMatrix mini(float v, FloatMatrix result)
           
 FloatMatrix mini(FloatMatrix other)
          Computes the minimum between two matrices.
 FloatMatrix mini(FloatMatrix other, FloatMatrix result)
          Computes the minimum between two matrices.
 FloatMatrix mmul(float v)
          Matrix-multiply by a scalar.
 FloatMatrix mmul(FloatMatrix other)
          Matrix-multiply by a matrix (in place).
 FloatMatrix mmuli(float v)
          Matrix-multiply by a scalar (in place).
 FloatMatrix mmuli(float v, FloatMatrix result)
          Matrix-matrix multiplication with a scalar (for symmetry, does the same as muli(scalar) (in-place).
 FloatMatrix mmuli(FloatMatrix other)
          Matrix-multiply by a matrix (in place).
 FloatMatrix mmuli(FloatMatrix other, FloatMatrix result)
          Matrix-matrix multiplication (in-place).
 FloatMatrix mul(float v)
          Elementwise multiply by a scalar.
 FloatMatrix mul(FloatMatrix other)
          Elementwise multiply by a matrix (in place).
 FloatMatrix mulColumn(int c, float scale)
          Multiply a column by a scalar.
 FloatMatrix mulColumnVector(FloatMatrix x)
          Multiply all columns with a column vector.
 FloatMatrix muli(float v)
          Elementwise multiply by a scalar (in place).
 FloatMatrix muli(float v, FloatMatrix result)
          Elementwise multiplication with a scalar (in-place).
 FloatMatrix muli(FloatMatrix other)
          Elementwise multiply by a matrix (in place).
 FloatMatrix muli(FloatMatrix other, FloatMatrix result)
          Elementwise multiplication (in-place).
 FloatMatrix muliColumnVector(FloatMatrix x)
          Multiply all columns with a column vector (in-place).
 FloatMatrix muliRowVector(FloatMatrix x)
          Multiply all rows with a row vector (in-place).
 FloatMatrix mulRow(int r, float scale)
          Multiply a row by a scalar.
 FloatMatrix mulRowVector(FloatMatrix x)
          Multiply all rows with a row vector.
 boolean multipliesWith(FloatMatrix a)
          Checks whether two matrices can be multiplied (that is, number of columns of this must equal number of rows of a.
 FloatMatrix ne(float value)
          test for inequality against a scalar.
 FloatMatrix ne(FloatMatrix other)
          Test for inequality.
 FloatMatrix neg()
          Negate each element.
 FloatMatrix negi()
          Negate each element (in-place).
 FloatMatrix nei(float value)
          Test for inequality against a scalar (in-place).
 FloatMatrix nei(float value, FloatMatrix result)
          Test for inequality against a scalar (in-place).
 FloatMatrix nei(FloatMatrix other)
          Test for inequality (in-place).
 FloatMatrix nei(FloatMatrix other, FloatMatrix result)
          Test for inequality (in-place).
 float norm1()
          The 1-norm of the matrix as vector (sum of absolute values of elements).
 float norm2()
          The Euclidean norm of the matrix as vector, also the Frobenius norm of the matrix.
 float normmax()
          The maximum norm of the matrix (maximal absolute value of the elements).
 FloatMatrix not()
          Maps zero to 1.0f and all non-zero values to 0.0f.
 FloatMatrix noti()
          Maps zero to 1.0f and all non-zero values to 0.0f (in-place).
static FloatMatrix ones(int length)
          Creates a row vector with all elements equal to 1.
static FloatMatrix ones(int rows, int columns)
          Creates a new matrix in which all values are equal 1.
 FloatMatrix or(float value)
          Compute elementwise logical or against a scalar.
 FloatMatrix or(FloatMatrix other)
          Compute elementwise logical or.
 FloatMatrix ori(float value)
          Compute elementwise logical or against a scalar (in-place).
 FloatMatrix ori(float value, FloatMatrix result)
          Compute elementwise logical or against a scalar (in-place).
 FloatMatrix ori(FloatMatrix other)
          Compute elementwise logical or (in-place).
 FloatMatrix ori(FloatMatrix other, FloatMatrix result)
          Compute elementwise logical or (in-place).
 void out(java.io.DataOutputStream dos)
          Writes out this matrix to the given data stream.
 void print()
          Pretty-print this matrix to System.out.
 float prod()
          Computes the product of all elements of the matrix
 float project(FloatMatrix other)
          Computes the projection coefficient of other on this.
 FloatMatrix put(FloatMatrix indices, float v)
          Put a single value into the elements specified by the non-zero entries of indices (linear adressing).
 FloatMatrix put(FloatMatrix indices, FloatMatrix v)
          Put a sub-matrix into the indices specified by the non-zero entries of indices (linear adressing).
 FloatMatrix put(FloatMatrix rindices, FloatMatrix cindices, float v)
          Put a single value in the specified rows and columns (non-zero entries of rindices and cindices.
 FloatMatrix put(FloatMatrix rindices, FloatMatrix cindices, FloatMatrix v)
          Put a sub-matrix into the specified rows and columns (non-zero entries of rindices and cindices.
 FloatMatrix put(FloatMatrix indices, int c, float v)
          Put a single value into the specified rows (non-zero entries of indices) of a column.
 FloatMatrix put(FloatMatrix indices, int c, FloatMatrix v)
          Put a sub-vector into the specified rows (non-zero entries of indices) of a column.
 FloatMatrix put(int[] indices, float v)
          Put a single value into the specified indices (linear adressing).
 FloatMatrix put(int[] indices, FloatMatrix x)
          Set elements in linear ordering in the specified indices.
 FloatMatrix put(int[] rindices, int[] cindices, float v)
          Put a single value into the specified rows and columns.
 FloatMatrix put(int[] rindices, int[] cindices, FloatMatrix x)
          Put a sub-matrix as specified by the indices.
 FloatMatrix put(int[] indices, int c, float v)
          Put a single value into the specified rows of a column.
 FloatMatrix put(int[] indices, int c, FloatMatrix x)
          Set multiple elements in a row.
 FloatMatrix put(int i, float v)
          Set a matrix element (linear indexing).
 FloatMatrix put(int r, FloatMatrix indices, float v)
          Put a single value into the specified columns (non-zero entries of indices) of a row.
 FloatMatrix put(int r, FloatMatrix indices, FloatMatrix v)
          Put a sub-vector into the specified columns (non-zero entries of indices) of a row.
 FloatMatrix put(int r, int[] indices, float v)
          Put a single value into a row and the specified columns.
 FloatMatrix put(int r, int[] indices, FloatMatrix x)
          Set multiple elements in a row.
 FloatMatrix put(int rowIndex, int columnIndex, float value)
          Set matrix element
 FloatMatrix put(Range rs, Range cs, FloatMatrix x)
          Put a matrix into specified indices.
 void putColumn(int c, FloatMatrix v)
          Copy a column back into the matrix.
 void putRow(int r, FloatMatrix v)
          Copy a row back into the matrix.
static FloatMatrix rand(int len)
          Creates a row vector with random values uniformly in 0..1.
static FloatMatrix rand(int rows, int columns)
          Create matrix with random values uniformly in 0..1.
static FloatMatrix randn(int len)
          Create row vector with normally distributed random values.
static FloatMatrix randn(int rows, int columns)
          Create matrix with normally distributed random values.
 FloatMatrix rankOneUpdate(float alpha, FloatMatrix x)
          Computes a rank-1-update A = A + alpha * x * x'.
 FloatMatrix rankOneUpdate(float alpha, FloatMatrix x, FloatMatrix y)
          Computes a rank-1-update A = A + alpha * x * y'.
 FloatMatrix rankOneUpdate(FloatMatrix x)
          Computes a rank-1-update A = A + x * x'.
 FloatMatrix rankOneUpdate(FloatMatrix x, FloatMatrix y)
          Computes a rank-1-update A = A + x * y'.
 FloatMatrix rdiv(float v)
          (right-)elementwise divide by a scalar.
 FloatMatrix rdiv(FloatMatrix other)
          (right-)elementwise divide by a matrix (in place).
 FloatMatrix rdivi(float v)
          (right-)elementwise divide by a scalar (in place).
 FloatMatrix rdivi(float a, FloatMatrix result)
          (Elementwise) division with a scalar, with operands switched.
 FloatMatrix rdivi(FloatMatrix other)
          (right-)elementwise divide by a matrix (in place).
 FloatMatrix rdivi(FloatMatrix other, FloatMatrix result)
          Elementwise division, with operands switched.
 FloatMatrix repmat(int rowMult, int columnMult)
          Generate a new matrix which has the given number of replications of this.
 FloatMatrix reshape(int newRows, int newColumns)
          Reshape the matrix.
 void resize(int newRows, int newColumns)
          Resize the matrix.
 int[] rowArgmaxs()
          Return index of minimal element per row.
 int[] rowArgmins()
          Return index of minimal element per row.
 FloatMatrix rowMaxs()
          Return row-wise maximums.
 FloatMatrix rowMeans()
          Return a vector containing the means of the rows.
 FloatMatrix rowMins()
          Return row-wise minimums.
 java.util.List<FloatMatrix> rowsAsList()
           
 int[][] rowSortingPermutations()
          Return matrix of indices which sort all columns.
 FloatMatrix rowSums()
          Return a vector containing the sum of the rows.
 FloatMatrix rsub(float v)
          (right-)subtract a scalar.
 FloatMatrix rsub(FloatMatrix other)
          (right-)subtract a matrix (in place).
 FloatMatrix rsubi(float v)
          (right-)subtract a scalar (in place).
 FloatMatrix rsubi(float a, FloatMatrix result)
          Subtract a matrix from a scalar (in-place).
 FloatMatrix rsubi(FloatMatrix other)
          (right-)subtract a matrix (in place).
 FloatMatrix rsubi(FloatMatrix other, FloatMatrix result)
          Subtract two matrices, but subtract first from second matrix, that is, compute result = other - this (in-place).
 boolean sameLength(FloatMatrix a)
          Checks whether two matrices have the same length.
 boolean sameSize(FloatMatrix a)
          Checks whether two matrices have the same size.
 void save(java.lang.String filename)
          Saves this matrix to the specified file.
 float scalar()
          Return the first element of the matrix.
static FloatMatrix scalar(float s)
          Create a 1-by-1 matrix.
 FloatMatrix select(FloatMatrix where)
           
 FloatMatrix selecti(FloatMatrix where)
           
 FloatMatrix sort()
          Return a new matrix with all elements sorted.
 FloatMatrix sortColumns()
          Sort columns.
 FloatMatrix sortColumnsi()
          Sort columns (in-place).
 FloatMatrix sorti()
          Sort elements in-place.
 int[] sortingPermutation()
          Get the sorting permutation.
 FloatMatrix sortRows()
          Sort rows.
 FloatMatrix sortRowsi()
          Sort rows (in-place).
 float squaredDistance(FloatMatrix other)
          Returns the squared (Euclidean) distance.
 FloatMatrix sub(float v)
          Subtract a scalar.
 FloatMatrix sub(FloatMatrix other)
          Subtract a matrix (in place).
 FloatMatrix subColumnVector(FloatMatrix x)
          Subtract a vector from all columns of the matrix.
 FloatMatrix subi(float v)
          Subtract a scalar (in place).
 FloatMatrix subi(float v, FloatMatrix result)
          Subtract a scalar from a matrix (in-place).
 FloatMatrix subi(FloatMatrix other)
          Subtract a matrix (in place).
 FloatMatrix subi(FloatMatrix other, FloatMatrix result)
          Subtract two matrices (in-place).
 FloatMatrix subiColumnVector(FloatMatrix x)
          Subtract a column vector from all columns of the matrix (in-place).
 FloatMatrix subiRowVector(FloatMatrix x)
          Subtract a row vector from all rows of the matrix (in-place).
 FloatMatrix subRowVector(FloatMatrix x)
          Subtract a row vector from all rows of the matrix.
 float sum()
          Computes the sum of all elements of the matrix.
 FloatMatrix swapColumns(int i, int j)
          Swap two columns of a matrix.
 FloatMatrix swapRows(int i, int j)
          Swap two rows of a matrix.
 float[] toArray()
          Converts the matrix to a one-dimensional array of floats.
 float[][] toArray2()
          Converts the matrix to a two-dimensional array of floats.
 boolean[] toBooleanArray()
          Convert the matrix to a one-dimensional array of boolean values.
 boolean[][] toBooleanArray2()
          Convert the matrix to a two-dimensional array of boolean values.
 FloatMatrix toFloat()
           
 int[] toIntArray()
          Converts the matrix to a one-dimensional array of integers.
 int[][] toIntArray2()
          Convert the matrix to a two-dimensional array of integers.
 java.lang.String toString()
          Generate string representation of the matrix.
 java.lang.String toString(java.lang.String fmt)
          Generate string representation of the matrix, with specified format for the entries.
 FloatMatrix transpose()
          Return transposed copy of this matrix.
 FloatMatrix truth()
          Maps zero to 0.0f and all non-zero values to 1.0f.
 FloatMatrix truthi()
          Maps zero to 0.0f and all non-zero values to 1.0f (in-place).
static FloatMatrix valueOf(java.lang.String text)
          Construct FloatMatrix from ASCII representation.
 FloatMatrix xor(float value)
          Compute elementwise logical xor against a scalar.
 FloatMatrix xor(FloatMatrix other)
          Compute elementwise logical xor.
 FloatMatrix xori(float value)
          Compute elementwise logical xor against a scalar (in-place).
 FloatMatrix xori(float value, FloatMatrix result)
          Compute elementwise logical xor against a scalar (in-place).
 FloatMatrix xori(FloatMatrix other)
          Compute elementwise logical xor (in-place).
 FloatMatrix xori(FloatMatrix other, FloatMatrix result)
          Compute elementwise logical xor (in-place).
static FloatMatrix zeros(int length)
          Creates a row vector of given length.
static FloatMatrix zeros(int rows, int columns)
          Creates a new matrix in which all values are equal 0.
 
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
 

Field Detail

rows

public int rows
Number of rows.


columns

public int columns
Number of columns.


length

public int length
Total number of elements (for convenience).


data

public float[] data
The actual data stored by rows (that is, row 0, row 1...).


EMPTY

public static final FloatMatrix EMPTY
Constructor Detail

FloatMatrix

public FloatMatrix(int newRows,
                   int newColumns,
                   float... newData)
Create a new matrix with newRows rows, newColumns columns using newData> as the data. The length of the data is not checked!


FloatMatrix

public FloatMatrix(int newRows,
                   int newColumns)
Creates a new n times m FloatMatrix.

Parameters:
newRows - the number of rows (n) of the new matrix.
newColumns - the number of columns (m) of the new matrix.

FloatMatrix

public FloatMatrix()
Creates a new FloatMatrix of size 0 times 0.


FloatMatrix

public FloatMatrix(int len)
Create a Matrix of length len. By default, this creates a row vector.

Parameters:
len -

FloatMatrix

public FloatMatrix(float[] newData)

FloatMatrix

public FloatMatrix(java.lang.String filename)
            throws java.io.IOException
Creates a new matrix by reading it from a file.

Parameters:
filename - the path and name of the file to read the matrix from
Throws:
java.io.IOException

FloatMatrix

public FloatMatrix(float[][] data)
Creates a new n times m FloatMatrix from the given n times m 2D data array. The first dimension of the array makes the rows (n) and the second dimension the columns (m). For example, the given code

new FloatMatrix(new float[][]{{1d, 2d, 3d}, {4d, 5d, 6d}, {7d, 8d, 9d}}).print();

will constructs the following matrix:
 1.0f   2.0f    3.0f
 4.0f   5.0f    6.0f
 7.0f   8.0f    9.0f
 
.

Parameters:
data - n times m data array

FloatMatrix

public FloatMatrix(java.util.List<java.lang.Float> data)
Method Detail

valueOf

public static FloatMatrix valueOf(java.lang.String text)
Construct FloatMatrix from ASCII representation. This is not very fast, but can be quiet useful when you want to "just" construct a matrix, for example when testing. The format is semicolon separated rows of space separated values, for example "1 2 3; 4 5 6; 7 8 9".


rand

public static FloatMatrix rand(int rows,
                               int columns)
Create matrix with random values uniformly in 0..1.


rand

public static FloatMatrix rand(int len)
Creates a row vector with random values uniformly in 0..1.


randn

public static FloatMatrix randn(int rows,
                                int columns)
Create matrix with normally distributed random values.


randn

public static FloatMatrix randn(int len)
Create row vector with normally distributed random values.


zeros

public static FloatMatrix zeros(int rows,
                                int columns)
Creates a new matrix in which all values are equal 0.


zeros

public static FloatMatrix zeros(int length)
Creates a row vector of given length.


ones

public static FloatMatrix ones(int rows,
                               int columns)
Creates a new matrix in which all values are equal 1.


ones

public static FloatMatrix ones(int length)
Creates a row vector with all elements equal to 1.


eye

public static FloatMatrix eye(int n)
Construct a new n-by-n identity matrix.


diag

public static FloatMatrix diag(FloatMatrix x)
Creates a new matrix where the values of the given vector are the diagonal values of the matrix.


scalar

public static FloatMatrix scalar(float s)
Create a 1-by-1 matrix. For many operations, this matrix functions like a normal float.


isScalar

public boolean isScalar()
Test whether a matrix is scalar.


scalar

public float scalar()
Return the first element of the matrix.


logspace

public static FloatMatrix logspace(float lower,
                                   float upper,
                                   int size)

linspace

public static FloatMatrix linspace(int lower,
                                   int upper,
                                   int size)

concatHorizontally

public static FloatMatrix concatHorizontally(FloatMatrix A,
                                             FloatMatrix B)
Concatenates two matrices horizontally. Matrices must have identical numbers of rows.


concatVertically

public static FloatMatrix concatVertically(FloatMatrix A,
                                           FloatMatrix B)
Concatenates two matrices vertically. Matrices must have identical numbers of columns.


get

public FloatMatrix get(int[] indices)
Get all elements specified by the linear indices.


get

public FloatMatrix get(int r,
                       int[] indices)
Get all elements for a given row and the specified columns.


get

public FloatMatrix get(int[] indices,
                       int c)
Get all elements for a given column and the specified rows.


get

public FloatMatrix get(int[] rindices,
                       int[] cindices)
Get all elements from the specified rows and columns.


get

public FloatMatrix get(Range rs,
                       Range cs)
Get elements from specified rows and columns.


get

public FloatMatrix get(Range rs,
                       int c)

get

public FloatMatrix get(int r,
                       Range cs)

get

public FloatMatrix get(FloatMatrix indices)
Get elements specified by the non-zero entries of the passed matrix.


get

public FloatMatrix get(int r,
                       FloatMatrix indices)
Get elements from a row and columns as specified by the non-zero entries of a matrix.


get

public FloatMatrix get(FloatMatrix indices,
                       int c)
Get elements from a column and rows as specified by the non-zero entries of a matrix.


get

public FloatMatrix get(FloatMatrix rindices,
                       FloatMatrix cindices)
Get elements from columns and rows as specified by the non-zero entries of the passed matrices.


getRange

public FloatMatrix getRange(int a,
                            int b)
Return all elements with linear index a, a + 1, ..., b - 1.


getColumnRange

public FloatMatrix getColumnRange(int r,
                                  int a,
                                  int b)
Get elements from a row and columns a to b.


getRowRange

public FloatMatrix getRowRange(int a,
                               int b,
                               int c)
Get elements from a column and rows a/tt> to b.


getRange

public FloatMatrix getRange(int ra,
                            int rb,
                            int ca,
                            int cb)
Get elements from rows ra to rb and columns ca to cb.


getRows

public FloatMatrix getRows(int[] rindices)
Get whole rows from the passed indices.


getRows

public FloatMatrix getRows(FloatMatrix rindices)
Get whole rows as specified by the non-zero entries of a matrix.


getRows

public FloatMatrix getRows(Range indices,
                           FloatMatrix result)

getRows

public FloatMatrix getRows(Range indices)

getColumns

public FloatMatrix getColumns(int[] cindices)
Get whole columns from the passed indices.


getColumns

public FloatMatrix getColumns(FloatMatrix cindices)
Get whole columns as specified by the non-zero entries of a matrix.


checkLength

public void checkLength(int l)
Assert that the matrix has a certain length.

Throws:
SizeException

checkRows

public void checkRows(int r)
Asserts that the matrix has a certain number of rows.

Throws:
SizeException

checkColumns

public void checkColumns(int c)
Asserts that the amtrix has a certain number of columns.

Throws:
SizeException

put

public FloatMatrix put(int[] indices,
                       FloatMatrix x)
Set elements in linear ordering in the specified indices.


put

public FloatMatrix put(int r,
                       int[] indices,
                       FloatMatrix x)
Set multiple elements in a row.


put

public FloatMatrix put(int[] indices,
                       int c,
                       FloatMatrix x)
Set multiple elements in a row.


put

public FloatMatrix put(int[] rindices,
                       int[] cindices,
                       FloatMatrix x)
Put a sub-matrix as specified by the indices.


put

public FloatMatrix put(Range rs,
                       Range cs,
                       FloatMatrix x)
Put a matrix into specified indices.


put

public FloatMatrix put(int[] indices,
                       float v)
Put a single value into the specified indices (linear adressing).


put

public FloatMatrix put(int r,
                       int[] indices,
                       float v)
Put a single value into a row and the specified columns.


put

public FloatMatrix put(int[] indices,
                       int c,
                       float v)
Put a single value into the specified rows of a column.


put

public FloatMatrix put(int[] rindices,
                       int[] cindices,
                       float v)
Put a single value into the specified rows and columns.


put

public FloatMatrix put(FloatMatrix indices,
                       FloatMatrix v)
Put a sub-matrix into the indices specified by the non-zero entries of indices (linear adressing).


put

public FloatMatrix put(int r,
                       FloatMatrix indices,
                       FloatMatrix v)
Put a sub-vector into the specified columns (non-zero entries of indices) of a row.


put

public FloatMatrix put(FloatMatrix indices,
                       int c,
                       FloatMatrix v)
Put a sub-vector into the specified rows (non-zero entries of indices) of a column.


put

public FloatMatrix put(FloatMatrix rindices,
                       FloatMatrix cindices,
                       FloatMatrix v)
Put a sub-matrix into the specified rows and columns (non-zero entries of rindices and cindices.


put

public FloatMatrix put(FloatMatrix indices,
                       float v)
Put a single value into the elements specified by the non-zero entries of indices (linear adressing).


put

public FloatMatrix put(int r,
                       FloatMatrix indices,
                       float v)
Put a single value into the specified columns (non-zero entries of indices) of a row.


put

public FloatMatrix put(FloatMatrix indices,
                       int c,
                       float v)
Put a single value into the specified rows (non-zero entries of indices) of a column.


put

public FloatMatrix put(FloatMatrix rindices,
                       FloatMatrix cindices,
                       float v)
Put a single value in the specified rows and columns (non-zero entries of rindices and cindices.


findIndices

public int[] findIndices()
Find the linear indices of all non-zero elements.


transpose

public FloatMatrix transpose()
Return transposed copy of this matrix.


equals

public boolean equals(java.lang.Object o)
Compare two matrices. Returns true if and only if other is also a FloatMatrix which has the same size and the maximal absolute difference in matrix elements is smaller thatn 1e-6.

Overrides:
equals in class java.lang.Object

hashCode

public int hashCode()
Overrides:
hashCode in class java.lang.Object

resize

public void resize(int newRows,
                   int newColumns)
Resize the matrix. All elements will be set to zero.


reshape

public FloatMatrix reshape(int newRows,
                           int newColumns)
Reshape the matrix. Number of elements must not change.


repmat

public FloatMatrix repmat(int rowMult,
                          int columnMult)
Generate a new matrix which has the given number of replications of this.


sameSize

public boolean sameSize(FloatMatrix a)
Checks whether two matrices have the same size.


assertSameSize

public void assertSameSize(FloatMatrix a)
Throws SizeException unless two matrices have the same size.


multipliesWith

public boolean multipliesWith(FloatMatrix a)
Checks whether two matrices can be multiplied (that is, number of columns of this must equal number of rows of a.


assertMultipliesWith

public void assertMultipliesWith(FloatMatrix a)
Throws SizeException unless matrices can be multiplied with one another.


sameLength

public boolean sameLength(FloatMatrix a)
Checks whether two matrices have the same length.


assertSameLength

public void assertSameLength(FloatMatrix a)
Throws SizeException unless matrices have the same length.


copy

public FloatMatrix copy(FloatMatrix a)
Copy FloatMatrix a to this. this a is resized if necessary.


dup

public FloatMatrix dup()
Returns a duplicate of this matrix. Geometry is the same (including offsets, transpose, etc.), but the buffer is not shared.


swapColumns

public FloatMatrix swapColumns(int i,
                               int j)
Swap two columns of a matrix.


swapRows

public FloatMatrix swapRows(int i,
                            int j)
Swap two rows of a matrix.


put

public FloatMatrix put(int rowIndex,
                       int columnIndex,
                       float value)
Set matrix element


get

public float get(int rowIndex,
                 int columnIndex)
Retrieve matrix element


index

public int index(int rowIndex,
                 int columnIndex)
Get index of an element


indexRows

public int indexRows(int i)
Compute the row index of a linear index.


indexColumns

public int indexColumns(int i)
Compute the column index of a linear index.


get

public float get(int i)
Get a matrix element (linear indexing).


put

public FloatMatrix put(int i,
                       float v)
Set a matrix element (linear indexing).


fill

public FloatMatrix fill(float value)
Set all elements to a value.


getRows

public int getRows()
Get number of rows.


getColumns

public int getColumns()
Get number of columns.


getLength

public int getLength()
Get total number of elements.


isEmpty

public boolean isEmpty()
Checks whether the matrix is empty.


isSquare

public boolean isSquare()
Checks whether the matrix is square.


assertSquare

public void assertSquare()
Throw SizeException unless matrix is square.


isVector

public boolean isVector()
Checks whether the matrix is a vector.


isRowVector

public boolean isRowVector()
Checks whether the matrix is a row vector.


isColumnVector

public boolean isColumnVector()
Checks whether the matrix is a column vector.


diag

public FloatMatrix diag()
Returns the diagonal of the matrix.


print

public void print()
Pretty-print this matrix to System.out.


toString

public java.lang.String toString()
Generate string representation of the matrix.

Overrides:
toString in class java.lang.Object

toString

public java.lang.String toString(java.lang.String fmt)
Generate string representation of the matrix, with specified format for the entries. For example, x.toString("%.1f") generates a string representations having only one position after the decimal point.


toArray

public float[] toArray()
Converts the matrix to a one-dimensional array of floats.


toArray2

public float[][] toArray2()
Converts the matrix to a two-dimensional array of floats.


toIntArray

public int[] toIntArray()
Converts the matrix to a one-dimensional array of integers.


toIntArray2

public int[][] toIntArray2()
Convert the matrix to a two-dimensional array of integers.


toBooleanArray

public boolean[] toBooleanArray()
Convert the matrix to a one-dimensional array of boolean values.


toBooleanArray2

public boolean[][] toBooleanArray2()
Convert the matrix to a two-dimensional array of boolean values.


toFloat

public FloatMatrix toFloat()

elementsAsList

public java.util.List<java.lang.Float> elementsAsList()

rowsAsList

public java.util.List<FloatMatrix> rowsAsList()

columnsAsList

public java.util.List<FloatMatrix> columnsAsList()

addi

public FloatMatrix addi(FloatMatrix other,
                        FloatMatrix result)
Add two matrices (in-place).


addi

public FloatMatrix addi(float v,
                        FloatMatrix result)
Add a scalar to a matrix (in-place).


subi

public FloatMatrix subi(FloatMatrix other,
                        FloatMatrix result)
Subtract two matrices (in-place).


subi

public FloatMatrix subi(float v,
                        FloatMatrix result)
Subtract a scalar from a matrix (in-place).


rsubi

public FloatMatrix rsubi(FloatMatrix other,
                         FloatMatrix result)
Subtract two matrices, but subtract first from second matrix, that is, compute result = other - this (in-place).


rsubi

public FloatMatrix rsubi(float a,
                         FloatMatrix result)
Subtract a matrix from a scalar (in-place).


muli

public FloatMatrix muli(FloatMatrix other,
                        FloatMatrix result)
Elementwise multiplication (in-place).


muli

public FloatMatrix muli(float v,
                        FloatMatrix result)
Elementwise multiplication with a scalar (in-place).


mmuli

public FloatMatrix mmuli(FloatMatrix other,
                         FloatMatrix result)
Matrix-matrix multiplication (in-place).


mmuli

public FloatMatrix mmuli(float v,
                         FloatMatrix result)
Matrix-matrix multiplication with a scalar (for symmetry, does the same as muli(scalar) (in-place).


divi

public FloatMatrix divi(FloatMatrix other,
                        FloatMatrix result)
Elementwise division (in-place).


divi

public FloatMatrix divi(float a,
                        FloatMatrix result)
Elementwise division with a scalar (in-place).


rdivi

public FloatMatrix rdivi(FloatMatrix other,
                         FloatMatrix result)
Elementwise division, with operands switched. Computes result = other / this (in-place).


rdivi

public FloatMatrix rdivi(float a,
                         FloatMatrix result)
(Elementwise) division with a scalar, with operands switched. Computes result = a / this (in-place).


negi

public FloatMatrix negi()
Negate each element (in-place).


neg

public FloatMatrix neg()
Negate each element.


noti

public FloatMatrix noti()
Maps zero to 1.0f and all non-zero values to 0.0f (in-place).


not

public FloatMatrix not()
Maps zero to 1.0f and all non-zero values to 0.0f.


truthi

public FloatMatrix truthi()
Maps zero to 0.0f and all non-zero values to 1.0f (in-place).


truth

public FloatMatrix truth()
Maps zero to 0.0f and all non-zero values to 1.0f.


isNaNi

public FloatMatrix isNaNi()

isNaN

public FloatMatrix isNaN()

isInfinitei

public FloatMatrix isInfinitei()

isInfinite

public FloatMatrix isInfinite()

selecti

public FloatMatrix selecti(FloatMatrix where)

select

public FloatMatrix select(FloatMatrix where)

rankOneUpdate

public FloatMatrix rankOneUpdate(float alpha,
                                 FloatMatrix x,
                                 FloatMatrix y)
Computes a rank-1-update A = A + alpha * x * y'.


rankOneUpdate

public FloatMatrix rankOneUpdate(float alpha,
                                 FloatMatrix x)
Computes a rank-1-update A = A + alpha * x * x'.


rankOneUpdate

public FloatMatrix rankOneUpdate(FloatMatrix x)
Computes a rank-1-update A = A + x * x'.


rankOneUpdate

public FloatMatrix rankOneUpdate(FloatMatrix x,
                                 FloatMatrix y)
Computes a rank-1-update A = A + x * y'.


min

public float min()
Returns the minimal element of the matrix.


argmin

public int argmin()
Returns the linear index of the minimal element. If there are more than one elements with this value, the first one is returned.


mini

public FloatMatrix mini(FloatMatrix other,
                        FloatMatrix result)
Computes the minimum between two matrices. Returns the smaller of the corresponding elements in the matrix (in-place).


mini

public FloatMatrix mini(FloatMatrix other)
Computes the minimum between two matrices. Returns the smaller of the corresponding elements in the matrix (in-place on this).


min

public FloatMatrix min(FloatMatrix other)
Computes the minimum between two matrices. Returns the smaller of the corresponding elements in the matrix (in-place on this).


mini

public FloatMatrix mini(float v,
                        FloatMatrix result)

mini

public FloatMatrix mini(float v)

min

public FloatMatrix min(float v)

max

public float max()
Returns the maximal element of the matrix.


argmax

public int argmax()
Returns the linear index of the maximal element of the matrix. If there are more than one elements with this value, the first one is returned.


maxi

public FloatMatrix maxi(FloatMatrix other,
                        FloatMatrix result)
Computes the maximum between two matrices. Returns the larger of the corresponding elements in the matrix (in-place).


maxi

public FloatMatrix maxi(FloatMatrix other)
Computes the maximum between two matrices. Returns the smaller of the corresponding elements in the matrix (in-place on this).


max

public FloatMatrix max(FloatMatrix other)
Computes the maximum between two matrices. Returns the larger of the corresponding elements in the matrix (in-place on this).


maxi

public FloatMatrix maxi(float v,
                        FloatMatrix result)

maxi

public FloatMatrix maxi(float v)

max

public FloatMatrix max(float v)

sum

public float sum()
Computes the sum of all elements of the matrix.


prod

public float prod()
Computes the product of all elements of the matrix


mean

public float mean()
Computes the mean value of all elements in the matrix, that is, x.sum() / x.length.


cumulativeSumi

public FloatMatrix cumulativeSumi()
Computes the cumulative sum, that is, the sum of all elements of the matrix up to a given index in linear addressing (in-place).


cumulativeSum

public FloatMatrix cumulativeSum()
Computes the cumulative sum, that is, the sum of all elements of the matrix up to a given index in linear addressing.


dot

public float dot(FloatMatrix other)
The scalar product of this with other.


project

public float project(FloatMatrix other)
Computes the projection coefficient of other on this. The returned scalar times this is the orthogonal projection of other on this.


norm2

public float norm2()
The Euclidean norm of the matrix as vector, also the Frobenius norm of the matrix.


normmax

public float normmax()
The maximum norm of the matrix (maximal absolute value of the elements).


norm1

public float norm1()
The 1-norm of the matrix as vector (sum of absolute values of elements).


squaredDistance

public float squaredDistance(FloatMatrix other)
Returns the squared (Euclidean) distance.


distance2

public float distance2(FloatMatrix other)
Returns the (euclidean) distance.


distance1

public float distance1(FloatMatrix other)
Returns the (1-norm) distance.


sort

public FloatMatrix sort()
Return a new matrix with all elements sorted.


sorti

public FloatMatrix sorti()
Sort elements in-place.


sortingPermutation

public int[] sortingPermutation()
Get the sorting permutation.

Returns:
an int[] array such that which indexes the elements in sorted order.

sortColumnsi

public FloatMatrix sortColumnsi()
Sort columns (in-place).


sortColumns

public FloatMatrix sortColumns()
Sort columns.


columnSortingPermutations

public int[][] columnSortingPermutations()
Return matrix of indices which sort all columns.


sortRowsi

public FloatMatrix sortRowsi()
Sort rows (in-place).


sortRows

public FloatMatrix sortRows()
Sort rows.


rowSortingPermutations

public int[][] rowSortingPermutations()
Return matrix of indices which sort all columns.


columnSums

public FloatMatrix columnSums()
Return a vector containing the sums of the columns (having number of columns many entries)


columnMeans

public FloatMatrix columnMeans()
Return a vector containing the means of all columns.


rowSums

public FloatMatrix rowSums()
Return a vector containing the sum of the rows.


rowMeans

public FloatMatrix rowMeans()
Return a vector containing the means of the rows.


getColumn

public FloatMatrix getColumn(int c)
Get a copy of a column.


getColumn

public FloatMatrix getColumn(int c,
                             FloatMatrix result)
Copy a column to the given vector.


putColumn

public void putColumn(int c,
                      FloatMatrix v)
Copy a column back into the matrix.


getRow

public FloatMatrix getRow(int r)
Get a copy of a row.


getRow

public FloatMatrix getRow(int r,
                          FloatMatrix result)
Copy a row to a given vector.


putRow

public void putRow(int r,
                   FloatMatrix v)
Copy a row back into the matrix.


columnMins

public FloatMatrix columnMins()
Return column-wise minimums.


columnArgmins

public int[] columnArgmins()
Return index of minimal element per column.


columnMaxs

public FloatMatrix columnMaxs()
Return column-wise maximums.


columnArgmaxs

public int[] columnArgmaxs()
Return index of minimal element per column.


rowMins

public FloatMatrix rowMins()
Return row-wise minimums.


rowArgmins

public int[] rowArgmins()
Return index of minimal element per row.


rowMaxs

public FloatMatrix rowMaxs()
Return row-wise maximums.


rowArgmaxs

public int[] rowArgmaxs()
Return index of minimal element per row.


addiRowVector

public FloatMatrix addiRowVector(FloatMatrix x)
Add a row vector to all rows of the matrix (in place).


addRowVector

public FloatMatrix addRowVector(FloatMatrix x)
Add a row to all rows of the matrix.


addiColumnVector

public FloatMatrix addiColumnVector(FloatMatrix x)
Add a vector to all columns of the matrix (in-place).


addColumnVector

public FloatMatrix addColumnVector(FloatMatrix x)
Add a vector to all columns of the matrix.


subiRowVector

public FloatMatrix subiRowVector(FloatMatrix x)
Subtract a row vector from all rows of the matrix (in-place).


subRowVector

public FloatMatrix subRowVector(FloatMatrix x)
Subtract a row vector from all rows of the matrix.


subiColumnVector

public FloatMatrix subiColumnVector(FloatMatrix x)
Subtract a column vector from all columns of the matrix (in-place).


subColumnVector

public FloatMatrix subColumnVector(FloatMatrix x)
Subtract a vector from all columns of the matrix.


mulRow

public FloatMatrix mulRow(int r,
                          float scale)
Multiply a row by a scalar.


mulColumn

public FloatMatrix mulColumn(int c,
                             float scale)
Multiply a column by a scalar.


muliColumnVector

public FloatMatrix muliColumnVector(FloatMatrix x)
Multiply all columns with a column vector (in-place).


mulColumnVector

public FloatMatrix mulColumnVector(FloatMatrix x)
Multiply all columns with a column vector.


muliRowVector

public FloatMatrix muliRowVector(FloatMatrix x)
Multiply all rows with a row vector (in-place).


mulRowVector

public FloatMatrix mulRowVector(FloatMatrix x)
Multiply all rows with a row vector.


diviRowVector

public FloatMatrix diviRowVector(FloatMatrix x)

divRowVector

public FloatMatrix divRowVector(FloatMatrix x)

diviColumnVector

public FloatMatrix diviColumnVector(FloatMatrix x)

divColumnVector

public FloatMatrix divColumnVector(FloatMatrix x)

out

public void out(java.io.DataOutputStream dos)
         throws java.io.IOException
Writes out this matrix to the given data stream.

Parameters:
dos - the data output stream to write to.
Throws:
java.io.IOException

in

public void in(java.io.DataInputStream dis)
        throws java.io.IOException
Reads in a matrix from the given data stream. Note that the old data of this matrix will be discarded.

Parameters:
dis - the data input stream to read from.
Throws:
java.io.IOException

save

public void save(java.lang.String filename)
          throws java.io.IOException
Saves this matrix to the specified file.

Parameters:
filename - the file to write the matrix in.
Throws:
java.io.IOException - thrown on errors while writing the matrix to the file

load

public void load(java.lang.String filename)
          throws java.io.IOException
Loads a matrix from a file into this matrix. Note that the old data of this matrix will be discarded.

Parameters:
filename - the file to read the matrix from
Throws:
java.io.IOException - thrown on errors while reading the matrix

loadAsciiFile

public static FloatMatrix loadAsciiFile(java.lang.String filename)
                                 throws java.io.IOException
Throws:
java.io.IOException

loadCSVFile

public static FloatMatrix loadCSVFile(java.lang.String filename)
                               throws java.io.IOException
Throws:
java.io.IOException

addi

public FloatMatrix addi(FloatMatrix other)
Add a matrix (in place).


add

public FloatMatrix add(FloatMatrix other)
Add a matrix (in place).


addi

public FloatMatrix addi(float v)
Add a scalar (in place).


add

public FloatMatrix add(float v)
Add a scalar.


subi

public FloatMatrix subi(FloatMatrix other)
Subtract a matrix (in place).


sub

public FloatMatrix sub(FloatMatrix other)
Subtract a matrix (in place).


subi

public FloatMatrix subi(float v)
Subtract a scalar (in place).


sub

public FloatMatrix sub(float v)
Subtract a scalar.


rsubi

public FloatMatrix rsubi(FloatMatrix other)
(right-)subtract a matrix (in place).


rsub

public FloatMatrix rsub(FloatMatrix other)
(right-)subtract a matrix (in place).


rsubi

public FloatMatrix rsubi(float v)
(right-)subtract a scalar (in place).


rsub

public FloatMatrix rsub(float v)
(right-)subtract a scalar.


divi

public FloatMatrix divi(FloatMatrix other)
Elementwise divide by a matrix (in place).


div

public FloatMatrix div(FloatMatrix other)
Elementwise divide by a matrix (in place).


divi

public FloatMatrix divi(float v)
Elementwise divide by a scalar (in place).


div

public FloatMatrix div(float v)
Elementwise divide by a scalar.


rdivi

public FloatMatrix rdivi(FloatMatrix other)
(right-)elementwise divide by a matrix (in place).


rdiv

public FloatMatrix rdiv(FloatMatrix other)
(right-)elementwise divide by a matrix (in place).


rdivi

public FloatMatrix rdivi(float v)
(right-)elementwise divide by a scalar (in place).


rdiv

public FloatMatrix rdiv(float v)
(right-)elementwise divide by a scalar.


muli

public FloatMatrix muli(FloatMatrix other)
Elementwise multiply by a matrix (in place).


mul

public FloatMatrix mul(FloatMatrix other)
Elementwise multiply by a matrix (in place).


muli

public FloatMatrix muli(float v)
Elementwise multiply by a scalar (in place).


mul

public FloatMatrix mul(float v)
Elementwise multiply by a scalar.


mmuli

public FloatMatrix mmuli(FloatMatrix other)
Matrix-multiply by a matrix (in place).


mmul

public FloatMatrix mmul(FloatMatrix other)
Matrix-multiply by a matrix (in place).


mmuli

public FloatMatrix mmuli(float v)
Matrix-multiply by a scalar (in place).


mmul

public FloatMatrix mmul(float v)
Matrix-multiply by a scalar.


lti

public FloatMatrix lti(FloatMatrix other,
                       FloatMatrix result)
Test for "less than" (in-place).


lti

public FloatMatrix lti(FloatMatrix other)
Test for "less than" (in-place).


lt

public FloatMatrix lt(FloatMatrix other)
Test for "less than".


lti

public FloatMatrix lti(float value,
                       FloatMatrix result)
Test for "less than" against a scalar (in-place).


lti

public FloatMatrix lti(float value)
Test for "less than" against a scalar (in-place).


lt

public FloatMatrix lt(float value)
test for "less than" against a scalar.


gti

public FloatMatrix gti(FloatMatrix other,
                       FloatMatrix result)
Test for "greater than" (in-place).


gti

public FloatMatrix gti(FloatMatrix other)
Test for "greater than" (in-place).


gt

public FloatMatrix gt(FloatMatrix other)
Test for "greater than".


gti

public FloatMatrix gti(float value,
                       FloatMatrix result)
Test for "greater than" against a scalar (in-place).


gti

public FloatMatrix gti(float value)
Test for "greater than" against a scalar (in-place).


gt

public FloatMatrix gt(float value)
test for "greater than" against a scalar.


lei

public FloatMatrix lei(FloatMatrix other,
                       FloatMatrix result)
Test for "less than or equal" (in-place).


lei

public FloatMatrix lei(FloatMatrix other)
Test for "less than or equal" (in-place).


le

public FloatMatrix le(FloatMatrix other)
Test for "less than or equal".


lei

public FloatMatrix lei(float value,
                       FloatMatrix result)
Test for "less than or equal" against a scalar (in-place).


lei

public FloatMatrix lei(float value)
Test for "less than or equal" against a scalar (in-place).


le

public FloatMatrix le(float value)
test for "less than or equal" against a scalar.


gei

public FloatMatrix gei(FloatMatrix other,
                       FloatMatrix result)
Test for "greater than or equal" (in-place).


gei

public FloatMatrix gei(FloatMatrix other)
Test for "greater than or equal" (in-place).


ge

public FloatMatrix ge(FloatMatrix other)
Test for "greater than or equal".


gei

public FloatMatrix gei(float value,
                       FloatMatrix result)
Test for "greater than or equal" against a scalar (in-place).


gei

public FloatMatrix gei(float value)
Test for "greater than or equal" against a scalar (in-place).


ge

public FloatMatrix ge(float value)
test for "greater than or equal" against a scalar.


eqi

public FloatMatrix eqi(FloatMatrix other,
                       FloatMatrix result)
Test for equality (in-place).


eqi

public FloatMatrix eqi(FloatMatrix other)
Test for equality (in-place).


eq

public FloatMatrix eq(FloatMatrix other)
Test for equality.


eqi

public FloatMatrix eqi(float value,
                       FloatMatrix result)
Test for equality against a scalar (in-place).


eqi

public FloatMatrix eqi(float value)
Test for equality against a scalar (in-place).


eq

public FloatMatrix eq(float value)
test for equality against a scalar.


nei

public FloatMatrix nei(FloatMatrix other,
                       FloatMatrix result)
Test for inequality (in-place).


nei

public FloatMatrix nei(FloatMatrix other)
Test for inequality (in-place).


ne

public FloatMatrix ne(FloatMatrix other)
Test for inequality.


nei

public FloatMatrix nei(float value,
                       FloatMatrix result)
Test for inequality against a scalar (in-place).


nei

public FloatMatrix nei(float value)
Test for inequality against a scalar (in-place).


ne

public FloatMatrix ne(float value)
test for inequality against a scalar.


andi

public FloatMatrix andi(FloatMatrix other,
                        FloatMatrix result)
Compute elementwise logical and (in-place).


andi

public FloatMatrix andi(FloatMatrix other)
Compute elementwise logical and (in-place).


and

public FloatMatrix and(FloatMatrix other)
Compute elementwise logical and.


andi

public FloatMatrix andi(float value,
                        FloatMatrix result)
Compute elementwise logical and against a scalar (in-place).


andi

public FloatMatrix andi(float value)
Compute elementwise logical and against a scalar (in-place).


and

public FloatMatrix and(float value)
Compute elementwise logical and against a scalar.


ori

public FloatMatrix ori(FloatMatrix other,
                       FloatMatrix result)
Compute elementwise logical or (in-place).


ori

public FloatMatrix ori(FloatMatrix other)
Compute elementwise logical or (in-place).


or

public FloatMatrix or(FloatMatrix other)
Compute elementwise logical or.


ori

public FloatMatrix ori(float value,
                       FloatMatrix result)
Compute elementwise logical or against a scalar (in-place).


ori

public FloatMatrix ori(float value)
Compute elementwise logical or against a scalar (in-place).


or

public FloatMatrix or(float value)
Compute elementwise logical or against a scalar.


xori

public FloatMatrix xori(FloatMatrix other,
                        FloatMatrix result)
Compute elementwise logical xor (in-place).


xori

public FloatMatrix xori(FloatMatrix other)
Compute elementwise logical xor (in-place).


xor

public FloatMatrix xor(FloatMatrix other)
Compute elementwise logical xor.


xori

public FloatMatrix xori(float value,
                        FloatMatrix result)
Compute elementwise logical xor against a scalar (in-place).


xori

public FloatMatrix xori(float value)
Compute elementwise logical xor against a scalar (in-place).


xor

public FloatMatrix xor(float value)
Compute elementwise logical xor against a scalar.



© 2008-2010 by Mikio L. Braun and contributors