Last active
July 24, 2021 22:50
-
-
Save alesanabriav/bb4f95977c2a06290693f2448c17be7e to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
let mat1 = [ | |
[ 1, 2 ], | |
[ 3, 4 ], | |
]; | |
let mat2 = [ | |
[ 5, 6 ], | |
[ 8, 9 ] | |
]; | |
let matN2 = [ | |
[1], | |
[2], | |
[3], | |
[4] | |
]; | |
let identityMat = [ | |
[1, 0, 0, 0], | |
[0, 1, 0, 0], | |
[0, 0, 1, 0], | |
[0, 0, 0, 1] | |
]; | |
function getMatSize(mat) { | |
let rows = mat.length; | |
let cols = mat[0].length; | |
return { rows, cols }; | |
} | |
function addMat(m1, m2) { | |
let m1Rows = m1.length; | |
let m1Cols = m1[0].length; | |
let m2Rows = m2.length; | |
let m2Cols = m2[0].length; | |
if(m1Cols != m2Cols && m1Rows != m2Rows) { | |
return null; | |
} | |
var result = []; | |
for(var i = 0; i < m1Rows; i++) { | |
result[i] = []; | |
for(var j = 0; j < m2Cols; j++) { | |
let sum = m1[i][j] + m2[i][j]; | |
result[i][j] = sum; | |
} | |
} | |
console.log(result); | |
return result; | |
} | |
function scalarMat(mat, scalar) { | |
let mRows = mat.length; | |
let mCols = mat[0].length; | |
var result = []; | |
for(var i = 0; i < mRows; i++) { | |
result[i] = []; | |
for(var j = 0; j < mCols; j++) { | |
let sum = mat[i][j] + scalar; | |
result[i][j] = sum; | |
} | |
} | |
console.log(result); | |
return result; | |
} | |
function mulMat(m1, m2) { | |
let m1Size = getMatSize(m1); | |
let m2Size = getMatSize(m2); | |
if(m1Size.cols != m2Size.rows) { | |
return null; | |
} | |
console.log(m1Size, m2Size); | |
var result = []; | |
for(var i = 0; i < m1Size.rows; i++) { | |
result[i] = []; | |
for(var j = 0; j < m2Size.cols; j++) { | |
var sum = 0; | |
for(var k = 0; k < m1Size.cols; k++) { | |
let m2RowVal = m2[i][j]; | |
let m1ColVal = m1[i][k]; | |
sum += m1ColVal * m2RowVal; | |
} | |
result[i][j] = sum; | |
} | |
} | |
console.log(result); | |
return result; | |
} | |
// addMat(mat1, mat2); | |
// scalarMat(mat2, 2); | |
mulMat(identityMat, matN2); | |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment