|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object mp.MPDictionary mp.MPMatrix
This class is a simple matrix implementation of the MPDictionary superclass.
The dictionary is represented columnwise as a matrix D
of size N×K
,
i.e. as a length K
array of column vectors,
each is a length N
array.
Constructor Summary | |
MPMatrix(double[][] val)
Constructs a N×K matrix or dictionary with values
from given two-dimensional array, which represents the matrix
in columnwise ordering.
|
|
MPMatrix(int iN,
int iK)
Constructs a N×K matrix or dictionary with random values. |
|
MPMatrix(int iN,
int iK,
double[] val)
Constructs a N×K matrix or dictionary with values
from given one-dimensional array (which represents the matrix).
|
Method Summary | |
void |
addColumn(int k,
double factor,
double[] x)
Add a column of the matrix multiplied by a factor to a given vector. |
double |
getValue(int n,
int k)
Returns an entry of the matrix, i.e. a single entry of a dictionary element (atom). |
double |
innerProduct(int k1,
int k2)
Returns the inner product of two dictionary elements, i.e. matrix column vectors. |
double[] |
multiply(double[] y)
Multiplies the dictionary D by array y .
|
void |
multiply(double[] y,
double[] x)
Multiplies the dictionary D by array y .
|
void |
normalize()
Normalize the dictionary, i.e. multiply each dictionary element (matrix column vector) by a number (scalar) such that the 2-norm, i.e. sum of squares, will be 1.0. |
void |
setColumn(int k,
double[] col)
Replace a column in the dictionary with the given column vector. |
void |
setValue(int n,
int k,
double val)
Set an entry (a value) in the dictionary. |
double |
singleInnerProduct(int k1,
int k2)
Calculates and returns the inner product of two dictionary elements. |
double[] |
transposeMultiply(double[] x)
Multiplies the transposed dictionary D' by array x .
|
void |
transposeMultiply(double[] x,
double[] y)
Multiplies the transposed dictionary D' by array x .
|
Methods inherited from class mp.MPDictionary |
getColumn, getColumn, getColumns, getK, getN, getRow, getRow, getRows, isNormalized, setRow |
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Constructor Detail |
public MPMatrix(int iN, int iK)
N×K
matrix or dictionary with random values.
iN
- length of dictionary elements, i.e. column vectors of the matrix.iK
- number of dictionary elements.public MPMatrix(int iN, int iK, double[] val)
N×K
matrix or dictionary with values
from given one-dimensional array (which represents the matrix).
Length of the array should be N*K
.
iN
- length of dictionary elements, i.e. column vectors of the matrixiK
- number of dictionary elementsval
- the values (ordered by column, i.e. by dictionary elements)public MPMatrix(double[][] val)
N×K
matrix or dictionary with values
from given two-dimensional array, which represents the matrix
in columnwise ordering.
The input argument should thus be an array of K
arrays, each
with length N
.
val
- the values, a (columnwise) matrix.Method Detail |
public double getValue(int n, int k)
0 <= n < N
and 0 <= k < K
.
If any argument is outside legal range 0.0 is returned without error or warning.
getValue
in class MPDictionary
n
- row number for the returned entry value.k
- column number for the returned entry value.public void setValue(int n, int k, double val)
0 <= n < N
and 0 <= k < K
.
If any argument is outside legal range nothing is done.
setValue
in class MPDictionary
n
- row number for the entry value to be changed.k
- column number for the entry value to be changed.val
- the value to be put into the given entry of the dictionary.public void setColumn(int k, double[] col)
N
.
We should have: 0 <= k < K
.
If any argument is outside legal dimension or range nothing is done.
setColumn
in class MPDictionary
k
- column number for the column to be changed.col
- the value to be put into the given entry of the dictionary.public void addColumn(int k, double factor, double[] x)
0 <= k < K
. x = x+factor*D(:,k+1)
.
addColumn
in class MPDictionary
k
- number of the column in dictionary, i.e. matrix D
.factor
- a factor to multiply the column vector by.x
- an array of length N
.public double innerProduct(int k1, int k2)
0 <= k1 < K
and 0 <= k2 < K
. k1
or k2
is out of range, 0.0 is returned.
innerProduct
in class MPDictionary
k1
- number for the first dictionary element.k2
- number for the second dictionary element.public double singleInnerProduct(int k1, int k2)
0 <= k1 < K
and 0 <= k2 < K
. k1
or k2
is out of range, 0.0 is returned.
k1
- number for the first dictionary element.k2
- number for the second dictionary element.public void normalize()
normalize
in class MPDictionary
public double[] transposeMultiply(double[] x)
D'
by array x
.
D
is the matrix representing the dictionary, each column is a dictionary
element. An array y
is returned. D
is
N×K
, x
is N×1
,
and y
is K×1
. y = D'*x
.
transposeMultiply
in class MPDictionary
x
- the signal (column vector) that is multiplied by the transposed dictionary.
K
.public void transposeMultiply(double[] x, double[] y)
D'
by array x
.
D
is the matrix representing the dictionary, each column is a dictionary
element. An array y
is returned. D
is
N×K
, x
is N×1
,
and y
is K×1
. y = D'*x
.
transposeMultiply
in class MPDictionary
x
- the signal (column vector) that is multiplied by the transposed dictionary.y
- the results as an array of length K
.public double[] multiply(double[] y)
D
by array y
.
D
is the matrix representing the dictionary,
each column is a dictionary element.
An array x
is returned. D
is
N×K
, x
is N×1
,
and y
is K×1
. x = D*y
.
multiply
in class MPDictionary
y
- the coefficient vector that is multiplied by the dictionary.
N
.public void multiply(double[] y, double[] x)
D
by array y
.
D
is the matrix representing the dictionary,
each column is a dictionary element.
An array x
is returned. D
is
N×K
, x
is N×1
,
and y
is K×1
. x = D*y
.
multiply
in class MPDictionary
y
- the coefficient vector that is multiplied by the dictionary.x
- the results as an array of length N
.
|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |