Skip to content

Instantly share code, notes, and snippets.

@alesanabriav
Last active July 24, 2021 22:50
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save alesanabriav/bb4f95977c2a06290693f2448c17be7e to your computer and use it in GitHub Desktop.
Save alesanabriav/bb4f95977c2a06290693f2448c17be7e to your computer and use it in GitHub Desktop.
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