1.0.0 • Published 4 years ago

minor-matrix v1.0.0

Weekly downloads
1
License
MIT
Repository
github
Last release
4 years ago

Matrix

a tiny matrix library with ES6

You can create a Matrix like this:

//you can use a Two-dimensional array and you should decide the size of row and column.Here,a 3*3 matrix is created
let mat = new Matrix(3,3,[[1,2,3],[1,2,3],[1,2,3]]);

//Also, you can use a one-dimensional array
let mat = new Matrix(3,3,[1,2,3,1,2,3,1,2,3])

API

getOneDimensionArray() & getTwoDimensionArray()

let mat = new Matrix(3,3,[[1,2,3],[1,2,3],[1,2,3]]);

mat.getOneDimensionArray() //[1,2,3,1,2,3,1,2,3]
mat.getTwoDimensionArray() //[[1,2,3],[1,2,3],[1,2,3]]

getRowDimension() & getColumnDimension()

let mat = new Matrix(3,2,[[1,2],[1,2],[1,2]]);

mat.getRowDimension()  //3
mat.getColumnDimension()  //2

getMatrixRowArray(rNum, j0, j1) & getMatrixColArray(cNum, i0, i1)

let mat = new Matrix(3,3,[[1,2,3],[1,2,3],[1,2,3]]);

mat.getMatrixRowArray(2, 1, 2)  //[ 2, 3 ]
mat.getMatrixColArray(1, 0, 1)  //[ 2, 2 ]

transpose() & transposeEquals()

let mat = new Matrix(3,3,[[1,2,3],[1,2,3],[1,2,3]]);

let newMat = mat.transpose()  //return a new matrix
newMat.getOneDimensionArray() //  [ 1, 1, 1, 2, 2, 2, 3, 3, 3 ]
mat.getOneDimensionArray() //[1,2,3,1,2,3,1,2,3]

mat.transposeEquals()  //return self
mat.getOneDimensionArray() //  [ 1, 1, 1, 2, 2, 2, 3, 3, 3 ]

trace()

return the trace of the matrix

let mat = new Matrix(3,3,[[1,2,3],[1,2,3],[1,2,3]]);

mat.trace() // 6

copy()

return a copy of the matrix

let mat = new Matrix(3,3,[[1,2,3],[1,2,3],[1,2,3]]);

let newMat = mat.copy() // 6

plus(), minus(), arrayTimes() & arrayRightDivide()

add,subtract,multiply and divide between each element within two matrices, and return a new matrix

let mat = new Matrix(3,3,[[1,2,3],[1,2,3],[1,2,3]]);
let mat1 = new Matrix(3,3,[[3,2,1],[3,2,1],[3,2,1]]);

let matAdd = mat.plus(mat1)
matAdd.getOneDimensionArray() //[ 4, 4, 4, 4, 4, 4, 4, 4, 4 ]
let matSub = mat.minus(mat1)
matSub.getOneDimensionArray() // [ -2, 0, 2, -2, 0, 2, -2, 0, 2 ]
let matMul = mat.arrayTimes(mat1)
matMul.getOneDimensionArray() // [ 3, 4, 3, 3, 4, 3, 3, 4, 3 ]
let matDiv = mat.arrayRightDivide(mat1)
matDiv.getOneDimensionArray() //  [ 0.3333333333333333, 1, 3, 0.3333333333333333, 1, 3, 0.3333333333333333, 1, 3 ]

times() & timesEquals()

times() function can get a matrix or scalar, but timesEquals() only can get a scalar. times() will return a new matrix, and timesEquals() will return self

let mat = new Matrix(3,3,[[1,2,3],[1,2,3],[1,2,3]]);
let mat1 = new Matrix(3,3,[[3,2,1],[3,2,1],[3,2,1]]);

let mat2 = mat.times(3)
mat.getOneDimensionArray() //[ 1, 2, 3, 1, 2, 3, 1, 2, 3 ]
mat2.getOneDimensionArray() // [ 3, 6, 9, 3, 6, 9, 3, 6, 9 ]
mat2 = mat.times(mat1)
mat.getOneDimensionArray()//[ 1, 2, 3, 1, 2, 3, 1, 2, 3 ]
mat2.getOneDimensionArray() //  [ 18, 12, 6, 18, 12, 6, 18, 12, 6 ]

//mat.timesEquals(mat1) this way is wrong
mat.timesEquals(3) 
mat.getOneDimensionArray()//[ 3, 6, 9, 3, 6, 9, 3, 6, 9 ]

copy()

return a copy of the matrix

let mat = new Matrix(3,3,[[1,2,3],[1,2,3],[1,2,3]]);
let mat1 = mat.copy()

mat.getOneDimensionArray() //[ 1, 2, 3, 1, 2, 3, 1, 2, 3 ]
mat1.getOneDimensionArray() // [ 1, 2, 3, 1, 2, 3, 1, 2, 3 ]