JavaScript 行列乗算
Anika Tabassum Era
2024年2月15日
JavaScript では、Web 開発ソリューションを扱うだけでなく、基本的な計算を柔軟に実行することもできます。 結局のところ、それはプログラミング言語です。
JavaScript でマトリックス パターンを有効にするために、ネストされた配列を使用します。 これにより、行と列が簡単に表現されます。
行列の乗算では、いくつかの事前定義された条件を設定する必要があります。 たとえば、行列 A
に row_1 = 2
, column_1 = 3
があり、行列 B
に row_2 = 3
, column_2 = 2
がある場合、行列のデュオは乗算に互換性があります。
基本条件 column_1
は row_2
と等しくなければなりません。 結果は 2x2
の順序になります。
このタスクを説明するために、2つの例を検討します。
論理ドライブを使用して JavaScript で行列乗算を実行する
この例では、ネストされたループを生成して、配列全体 (別名行列配列) をトラバースします。 最初の行列の row
要素をチェックし、2 番目の行列の column
で基本的な合計と乗算演算を計算します。
コードフェンスを確認して理解してみましょう。
function multiplyMatrices(m1, m2) {
var result = [];
for (var i = 0; i < m1.length; i++) {
result[i] = [];
for (var j = 0; j < m2[0].length; j++) {
var sum = 0;
for (var k = 0; k < m1[0].length; k++) {
sum += m1[i][k] * m2[k][j];
}
result[i][j] = sum;
}
}
return result;
}
let m1 = [[1, 2, 42], [4, 5, 7]];
let m2 = [[1, 2], [3, 4], [42, 7]];
var result = multiplyMatrices(m1, m2)
console.table(result)
出力:
メソッドを使用して JavaScript で行列の乗算を計算する
map()
および reduce()
メソッドを使用して結果を描画します。 反復プロセスは明示的に定義する必要はありませんが、デフォルトで map()
が実行されます。
次のコードベースは、残りの説明を説明しています。
let MatrixProd = (A, B) => A.map(
(row, i) => B[0].map(
(_, j) => row.reduce((acc, _, n) => acc + A[i][n] * B[n][j], 0)))
let A = [[1, 2, 3], [4, 5, 6]];
let B = [[1, 2], [3, 4], [5, 6]];
console.table(MatrixProd(A, B));
出力: