public class WrapperFloatMatrix2D extends FloatMatrix2D
Constructor and Description |
---|
WrapperFloatMatrix2D(FloatMatrix2D newContent) |
Modifier and Type | Method and Description |
---|---|
FloatMatrix2D |
assign(float[] values)
Sets all cells to the state specified by values.
|
FloatMatrix2D |
assign(FloatMatrix2D y,
FloatFloatFunction function)
Assigns the result of a function to each cell;
x[row,col] = function(x[row,col],y[row,col]).
|
void |
dct2(boolean scale)
Computes the 2D discrete cosine transform (DCT-II) of this matrix.
|
void |
dctColumns(boolean scale)
Computes the discrete cosine transform (DCT-II) of each column of this
matrix.
|
void |
dctRows(boolean scale)
Computes the discrete cosine transform (DCT-II) of each row of this
matrix.
|
void |
dht2()
Computes the 2D discrete Hartley transform (DHT) of this matrix.
|
void |
dhtColumns()
Computes the discrete Hertley transform (DHT) of each column of this
matrix.
|
void |
dhtRows()
Computes the discrete Hertley transform (DHT) of each row of this matrix.
|
void |
dst2(boolean scale)
Computes the 2D discrete sine transform (DST-II) of this matrix.
|
void |
dstColumns(boolean scale)
Computes the discrete sine transform (DST-II) of each column of this
matrix.
|
void |
dstRows(boolean scale)
Computes the discrete sine transform (DST-II) of each row of this matrix.
|
Object |
elements()
Returns the elements of this matrix.
|
boolean |
equals(float value)
Returns whether all cells are equal to the given value.
|
boolean |
equals(Object obj)
Compares this object against the specified object.
|
void |
fft2()
Computes the 2D discrete Fourier transform (DFT) of this matrix.
|
DenseLargeFComplexMatrix2D |
getFft2()
Returns new complex matrix which is the 2D discrete Fourier transform
(DFT) of this matrix.
|
DenseLargeFComplexMatrix2D |
getFftColumns()
Returns new complex matrix which is the discrete Fourier transform (DFT)
of each column of this matrix.
|
DenseLargeFComplexMatrix2D |
getFftRows()
Returns new complex matrix which is the discrete Fourier transform (DFT)
of each row of this matrix.
|
DenseLargeFComplexMatrix2D |
getIfft2(boolean scale)
Returns new complex matrix which is the 2D inverse of the discrete
Fourier transform (IDFT) of this matrix.
|
DenseLargeFComplexMatrix2D |
getIfftColumns(boolean scale)
Returns new complex matrix which is the inverse of the discrete Fourier
transform (IDFT) of each column of this matrix.
|
DenseLargeFComplexMatrix2D |
getIfftRows(boolean scale)
Returns new complex matrix which is the inverse of the discrete Fourier
transform (IDFT) of each row of this matrix.
|
float |
getQuick(int row,
int column)
Returns the matrix cell value at coordinate [row,column].
|
void |
idct2(boolean scale)
Computes the 2D inverse of the discrete cosine transform (DCT-III) of
this matrix.
|
void |
idctColumns(boolean scale)
Computes the inverse of the discrete cosine transform (DCT-III) of each
column of this matrix.
|
void |
idctRows(boolean scale)
Computes the inverse of the discrete cosine transform (DCT-III) of each
row of this matrix.
|
void |
idht2(boolean scale)
Computes the 2D inverse of the discrete Hartley transform (DHT) of this
matrix.
|
void |
idhtColumns(boolean scale)
Computes the inverse of the discrete Hartley transform (DHT) of each
column of this matrix.
|
void |
idhtRows(boolean scale)
Computes the inverse of the discrete Hartley transform (DHT) of each row
of this matrix.
|
void |
idst2(boolean scale)
Computes the 2D inverse of the discrete size transform (DST-III) of this
matrix.
|
void |
idstColumns(boolean scale)
Computes the inverse of the discrete sine transform (DST-III) of each
column of this matrix.
|
void |
idstRows(boolean scale)
Computes the inverse of the discrete sine transform (DST-III) of each row
of this matrix.
|
void |
ifft2(boolean scale)
Computes the 2D inverse of the discrete Fourier transform (IDFT) of this
matrix.
|
FloatMatrix2D |
like(int rows,
int columns)
Construct and returns a new empty matrix of the same dynamic type
as the receiver, having the specified number of rows and columns.
|
FloatMatrix1D |
like1D(int size)
Construct and returns a new 1-d matrix of the corresponding dynamic
type, entirelly independent of the receiver.
|
void |
setQuick(int row,
int column,
float value)
Sets the matrix cell at coordinate [row,column] to the specified
value.
|
FloatMatrix1D |
vectorize()
Returns a vector obtained by stacking the columns of the matrix on top of
one another.
|
FloatMatrix1D |
viewColumn(int column)
Constructs and returns a new slice view representing the rows of
the given column.
|
FloatMatrix2D |
viewColumnFlip()
Constructs and returns a new flip view along the column axis.
|
FloatMatrix2D |
viewDice()
Constructs and returns a new dice (transposition) view; Swaps
axes; example: 3 x 4 matrix --> 4 x 3 matrix.
|
FloatMatrix2D |
viewPart(int row,
int column,
int height,
int width)
Constructs and returns a new sub-range view that is a
height x width sub matrix starting at [row,column].
|
FloatMatrix1D |
viewRow(int row)
Constructs and returns a new slice view representing the columns
of the given row.
|
FloatMatrix2D |
viewRowFlip()
Constructs and returns a new flip view along the row axis.
|
FloatMatrix2D |
viewSelection(int[] rowIndexes,
int[] columnIndexes)
Constructs and returns a new selection view that is a matrix
holding the indicated cells.
|
FloatMatrix2D |
viewStrides(int _rowStride,
int _columnStride)
Constructs and returns a new stride view which is a sub matrix
consisting of every i-th cell.
|
aggregate, aggregate, aggregate, aggregate, assign, assign, assign, assign, assign, assign, assign, cardinality, copy, forEachNonZero, get, getMaxLocation, getMinLocation, getNegativeValues, getNonZeros, getPositiveValues, like, normalize, set, toArray, toString, viewSelection, viewSelection, viewSorted, zAssign8Neighbors, zMult, zMult, zMult, zMult, zSum
checkShape, checkShape, columns, columnStride, index, rows, rowStride, size, toStringShort
ensureCapacity, isView, trimToSize
clone
public WrapperFloatMatrix2D(FloatMatrix2D newContent)
public FloatMatrix2D assign(float[] values)
FloatMatrix2D
The values are copied. So subsequent changes in values are not reflected in the matrix, and vice-versa.
assign
in class FloatMatrix2D
values
- the values to be filled into the cells.public FloatMatrix2D assign(FloatMatrix2D y, FloatFloatFunction function)
FloatMatrix2D
Example:
// assign x[row,col] = x[row,col]<sup>y[row,col]</sup> m1 = 2 x 2 matrix 0 1 2 3 m2 = 2 x 2 matrix 0 2 4 6 m1.assign(m2, cern.jet.math.Functions.pow); --> m1 == 2 x 2 matrix 1 1 16 729For further examples, see the package doc.
assign
in class FloatMatrix2D
y
- the secondary matrix to operate on.function
- a function object taking as first argument the current cell's
value of this, and as second argument the current
cell's value of y,FloatFunctions
public Object elements()
FloatMatrix2D
elements
in class FloatMatrix2D
public float getQuick(int row, int column)
FloatMatrix2D
Provided with invalid parameters this method may return invalid objects without throwing any exception. You should only use this method when you are absolutely sure that the coordinate is within bounds. Precondition (unchecked): 0 <= column < columns() && 0 <= row < rows().
getQuick
in class FloatMatrix2D
row
- the index of the row-coordinate.column
- the index of the column-coordinate.public boolean equals(float value)
FloatMatrix2D
equals
in class FloatMatrix2D
value
- the value to test against.public boolean equals(Object obj)
FloatMatrix2D
true
if and only if the argument is not null
and is at least a FloatMatrix2D
object that has the same
number of columns and rows as the receiver and has exactly the same
values at the same coordinates.equals
in class FloatMatrix2D
obj
- the object to compare with.true
if the objects are the same; false
otherwise.public FloatMatrix2D like(int rows, int columns)
FloatMatrix2D
like
in class FloatMatrix2D
rows
- the number of rows the matrix shall have.columns
- the number of columns the matrix shall have.public FloatMatrix1D like1D(int size)
FloatMatrix2D
like1D
in class FloatMatrix2D
size
- the number of cells the matrix shall have.public void dct2(boolean scale)
scale
- if true then scaling is performedpublic void dctColumns(boolean scale)
scale
- if true then scaling is performedpublic void dctRows(boolean scale)
scale
- if true then scaling is performedpublic void dst2(boolean scale)
scale
- if true then scaling is performedpublic void dstColumns(boolean scale)
scale
- if true then scaling is performedpublic void dstRows(boolean scale)
scale
- if true then scaling is performedpublic void dht2()
public void dhtColumns()
public void dhtRows()
public void fft2()
this[k1][2*k2] = Re[k1][k2] = Re[rows-k1][columns-k2], this[k1][2*k2+1] = Im[k1][k2] = -Im[rows-k1][columns-k2], 0<k1<rows, 0<k2<columns/2, this[0][2*k2] = Re[0][k2] = Re[0][columns-k2], this[0][2*k2+1] = Im[0][k2] = -Im[0][columns-k2], 0<k2<columns/2, this[k1][0] = Re[k1][0] = Re[rows-k1][0], this[k1][1] = Im[k1][0] = -Im[rows-k1][0], this[rows-k1][1] = Re[k1][columns/2] = Re[rows-k1][columns/2], this[rows-k1][0] = -Im[k1][columns/2] = Im[rows-k1][columns/2], 0<k1<rows/2, this[0][0] = Re[0][0], this[0][1] = Re[0][columns/2], this[rows/2][0] = Re[rows/2][0], this[rows/2][1] = Re[rows/2][columns/2]This method computes only half of the elements of the real transform. The other half satisfies the symmetry condition. If you want the full real forward transform, use
getFft2
. To get back the original
data, use ifft2
.IllegalArgumentException
- if the row size or the column size of this matrix is not a
power of 2 number.public DenseLargeFComplexMatrix2D getFft2()
public DenseLargeFComplexMatrix2D getIfft2(boolean scale)
public DenseLargeFComplexMatrix2D getFftColumns()
public DenseLargeFComplexMatrix2D getFftRows()
public DenseLargeFComplexMatrix2D getIfftColumns(boolean scale)
public DenseLargeFComplexMatrix2D getIfftRows(boolean scale)
public void idct2(boolean scale)
scale
- if true then scaling is performedpublic void idctColumns(boolean scale)
scale
- if true then scaling is performedpublic void idctRows(boolean scale)
scale
- if true then scaling is performedpublic void idst2(boolean scale)
scale
- if true then scaling is performedpublic void idstColumns(boolean scale)
scale
- if true then scaling is performedpublic void idstRows(boolean scale)
scale
- if true then scaling is performedpublic void idht2(boolean scale)
scale
- if true then scaling is performedpublic void idhtColumns(boolean scale)
scale
- if true then scaling is performedpublic void idhtRows(boolean scale)
scale
- if true then scaling is performedpublic void ifft2(boolean scale)
this[k1][2*k2] = Re[k1][k2] = Re[rows-k1][columns-k2], this[k1][2*k2+1] = Im[k1][k2] = -Im[rows-k1][columns-k2], 0<k1<rows, 0<k2<columns/2, this[0][2*k2] = Re[0][k2] = Re[0][columns-k2], this[0][2*k2+1] = Im[0][k2] = -Im[0][columns-k2], 0<k2<columns/2, this[k1][0] = Re[k1][0] = Re[rows-k1][0], this[k1][1] = Im[k1][0] = -Im[rows-k1][0], this[rows-k1][1] = Re[k1][columns/2] = Re[rows-k1][columns/2], this[rows-k1][0] = -Im[k1][columns/2] = Im[rows-k1][columns/2], 0<k1<rows/2, this[0][0] = Re[0][0], this[0][1] = Re[0][columns/2], this[rows/2][0] = Re[rows/2][0], this[rows/2][1] = Re[rows/2][columns/2]This method computes only half of the elements of the real transform. The other half satisfies the symmetry condition. If you want the full real inverse transform, use
getIfft2
.scale
- if true then scaling is performedIllegalArgumentException
- if the row size or the column size of this matrix is not a
power of 2 number.public void setQuick(int row, int column, float value)
FloatMatrix2D
Provided with invalid parameters this method may access illegal indexes without throwing any exception. You should only use this method when you are absolutely sure that the coordinate is within bounds. Precondition (unchecked): 0 <= column < columns() && 0 <= row < rows().
setQuick
in class FloatMatrix2D
row
- the index of the row-coordinate.column
- the index of the column-coordinate.value
- the value to be filled into the specified cell.public FloatMatrix1D vectorize()
FloatMatrix2D
vectorize
in class FloatMatrix2D
public FloatMatrix1D viewColumn(int column)
FloatMatrix2D
Example:
2 x 3 matrix: 1, 2, 3 4, 5, 6 |
viewColumn(0) ==> | Matrix1D of size 2: 1, 4 |
viewColumn
in class FloatMatrix2D
column
- the column to fix.FloatMatrix2D.viewRow(int)
public FloatMatrix2D viewColumnFlip()
FloatMatrix2D
Example:
2 x 3 matrix: 1, 2, 3 4, 5, 6 |
columnFlip ==> | 2 x 3 matrix: 3, 2, 1 6, 5, 4 |
columnFlip ==> | 2 x 3 matrix: 1, 2, 3 4, 5, 6 |
viewColumnFlip
in class FloatMatrix2D
FloatMatrix2D.viewRowFlip()
public FloatMatrix2D viewDice()
FloatMatrix2D
Example:
2 x 3 matrix: 1, 2, 3 4, 5, 6 |
transpose ==> | 3 x 2 matrix: 1, 4 2, 5 3, 6 |
transpose ==> | 2 x 3 matrix: 1, 2, 3 4, 5, 6 |
viewDice
in class FloatMatrix2D
public FloatMatrix2D viewPart(int row, int column, int height, int width)
FloatMatrix2D
Note that the view is really just a range restriction: The returned matrix is backed by this matrix, so changes in the returned matrix are reflected in this matrix, and vice-versa.
The view contains the cells from [row,column] to [row+height-1,column+width-1], all inclusive. and has view.rows() == height; view.columns() == width;. A view's legal coordinates are again zero based, as usual. In other words, legal coordinates of the view range from [0,0] to [view.rows()-1==height-1,view.columns()-1==width-1]. As usual, any attempt to access a cell at a coordinate column<0 || column>=view.columns() || row<0 || row>=view.rows() will throw an IndexOutOfBoundsException.
viewPart
in class FloatMatrix2D
row
- The index of the row-coordinate.column
- The index of the column-coordinate.height
- The height of the box.width
- The width of the box.public FloatMatrix1D viewRow(int row)
FloatMatrix2D
Example:
2 x 3 matrix: 1, 2, 3 4, 5, 6 |
viewRow(0) ==> | Matrix1D of size 3: 1, 2, 3 |
viewRow
in class FloatMatrix2D
row
- the row to fix.FloatMatrix2D.viewColumn(int)
public FloatMatrix2D viewRowFlip()
FloatMatrix2D
Example:
2 x 3 matrix: 1, 2, 3 4, 5, 6 |
rowFlip ==> | 2 x 3 matrix: 4, 5, 6 1, 2, 3 |
rowFlip ==> | 2 x 3 matrix: 1, 2, 3 4, 5, 6 |
viewRowFlip
in class FloatMatrix2D
FloatMatrix2D.viewColumnFlip()
public FloatMatrix2D viewSelection(int[] rowIndexes, int[] columnIndexes)
FloatMatrix2D
Example:
this = 2 x 3 matrix: 1, 2, 3 4, 5, 6 rowIndexes = (0,1) columnIndexes = (1,0,1,0) --> view = 2 x 4 matrix: 2, 1, 2, 1 5, 4, 5, 4Note that modifying the index arguments after this call has returned has no effect on the view. The returned view is backed by this matrix, so changes in the returned view are reflected in this matrix, and vice-versa.
To indicate "all" rows or "all columns", simply set the respective parameter
viewSelection
in class FloatMatrix2D
rowIndexes
- The rows of the cells that shall be visible in the new view.
To indicate that all rows shall be visible, simply set
this parameter to null.columnIndexes
- The columns of the cells that shall be visible in the new
view. To indicate that all columns shall be visible,
simply set this parameter to null.public FloatMatrix2D viewStrides(int _rowStride, int _columnStride)
FloatMatrix2D
viewStrides
in class FloatMatrix2D
_rowStride
- the row step factor._columnStride
- the column step factor.Jump to the Parallel Colt Homepage