For matrix multiplication to take place, the number of columns of the first matrix must be equal to the number of rows of the second matrix. In our example, i.e.
c1 = r2
同样,最终乘积矩阵的大小为 r1 x c2
,即
product[r1][c2]
You can also multiply two matrices without functions.
Example: Multiply Two Matrices
fun main(args: Array<String>) {
val r1 = 2
val c1 = 3
val r2 = 3
val c2 = 2
val firstMatrix = arrayOf(intArrayOf(3, -2, 5), intArrayOf(3, 0, 4))
val secondMatrix = arrayOf(intArrayOf(2, 3), intArrayOf(-9, 0), intArrayOf(0, 4))
// Mutliplying Two matrices
val product = multiplyMatrices(firstMatrix,
secondMatrix,
r1,
c1,
c2)
// Displaying the result
displayProduct(product)
}
fun multiplyMatrices(firstMatrix: Array <IntArray>,
secondMatrix: Array <IntArray>,
r1: Int,
c1: Int,
c2: Int): Array <IntArray> {
val product = Array(r1) { IntArray(c2) }
for (i in 0..r1 - 1) {
for (j in 0..c2 - 1) {
for (k in 0..c1 - 1) {
product[i][j] += firstMatrix[i][k] * secondMatrix[k][j]
}
}
}
return product
}
fun displayProduct(product: Array <IntArray>) {
println("Product of two matrices is: ")
for (row in product) {
for (column in row) {
print("$column ")
}
println()
}
}
运行程序后,输出将是
Sum of two matrices is: 24 29 6 25
In the above program, there are two functions
multiplyMatrices()
which multiplies the two given matrices and returns the product matrixdisplayProduct()
which displays the output of the product matrix on the screen.
The multiplication takes place as
|- (a11 x b11) + (a12 x b21) + (a13 x b31) (a11 x b12) + (a12 x b22) + (a13 x b32) -| |_ (a21 x b11) + (a22 x b21) + (a23 x b31) (a21 x b12) + (a22 x b22) + (a23 x b32) _|
在我们的例子中,它发生如下:
|- (3 x 2) + (-2 x -9) + (5 x 0) = 24 (3 x 3) + (-2 x 0) + (5 x 4) = 29 -| |_ (3 x 2) + ( 0 x -9) + (4 x 0) = 6 (3 x 3) + ( 0 x 0) + (4 x 4) = 25 _|
Here's the equivalent Java code: Java program to multiply two matrices using a function