Class Matrix Class Matrix (ver. 1.3) java.lang.Object | +----Matrix public class Matrix extends Object Matrix is a class for matrix objects with basic linear calculation methods. Matrix(int) Construct a square matrix object. Matrix(int, int) Construct a rectangle matrix object. copy() Copy the matrix. crossSqDistance(Matrix) Cross squared Euclidean distance Matrix: Z_{ij} = ||X_i - Y_j||^2 diagonal() If the matrix is a row or column vector, make a diagonal matrix from it. dividedBy(Matrix) Matrix division: X\Y. dividedBy(Matrix, int) Matrix division with bandwidth: X\Y. eigenvalues(double, int) Make a row vector including the eigenvalues of the matrix. horizontalSum() Make a horizontal-summation vector. identity(int) Make an identity matrix. linearConv(double, double, Matrix) Linear conversion: a*X + b*Y. mulipliedEntriesWith(Matrix) Multiply entries. multipliedBy(double) Scalar product: aX. multipliedBy(Matrix) Matrix multiplication: X*Y. random(int, int) Same as random(row, col, 1). random(int, int, int) Make a standard Gaussian random Matrix. sumEntries() Summation of all entries. sumSqrEntries() Summation of squared entries. transpose() Transpose: X'. updateDivideByRowVector(Matrix) X_{ij} = X_{ij}/v_{j}. updateExp() Update by exponential : exp(X_{ij}) updateLinearConv(double, double, Matrix) Update by Linear conversion: X = a*X + b*Y. verticalSum() Make a vertical-summation vector. Matrix public Matrix(int n) Construct a square matrix object. Parameters: n - size Matrix public Matrix(int row, int col) Construct a rectangle matrix object. Parameters: row - number of row col - number of column identity public static Matrix identity(int n) Make an identity matrix. Parameters: n - size random public static Matrix random(int row, int col, int seed) Make a standard Gaussian random Matrix. Parameters: row - number of row col - number of column seed - random seed random public static Matrix random(int row, int col) Same as random(row, col, 1). copy public Matrix copy() Copy the matrix. transpose public Matrix transpose() Transpose: X'. linearConv public Matrix linearConv(double a, double b, Matrix Y) Linear conversion: a*X + b*Y. updateLinearConv public void updateLinearConv(double a, double b, Matrix Y) Update by Linear conversion: X = a*X + b*Y. multipliedBy public Matrix multipliedBy(double a) Scalar product: aX. multipliedBy public Matrix multipliedBy(Matrix Y) Matrix multiplication: X*Y. dividedBy public Matrix dividedBy(Matrix Y) Matrix division: X\Y. dividedBy public Matrix dividedBy(Matrix Y, int bw) Matrix division with bandwidth: X\Y. crossSqDistance public Matrix crossSqDistance(Matrix Y) Cross squared Euclidean distance Matrix: Z_{ij} = ||X_i - Y_j||^2 updateExp public void updateExp() Update by exponential : exp(X_{ij}) horizontalSum public Matrix horizontalSum() Make a horizontal-summation vector. verticalSum public Matrix verticalSum() Make a vertical-summation vector. sumEntries public double sumEntries() Summation of all entries. sumSqrEntries public double sumSqrEntries() Summation of squared entries. mulipliedEntriesWith public Matrix mulipliedEntriesWith(Matrix Y) Multiply entries. updateDivideByRowVector public void updateDivideByRowVector(Matrix vec) X_{ij} = X_{ij}/v_{j}. diagonal public Matrix diagonal() If the matrix is a row or column vector, make a diagonal matrix from it. Otherwise extract its diagonal as a row vector. eigenvalues public Matrix eigenvalues(double eps, int lmax) Make a row vector including the eigenvalues of the matrix. Parameters: eps - allowable absolute value of off-diagonal entries Akio Utsugi National Institute of Bioscience and Human-Technology utsugi@nibh.go.jp