Kotlin 通过将矩阵传递给函数来相乘两个矩阵的程序

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 matrix
  • displayProduct() 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

你觉得这篇文章有帮助吗?

我们的高级学习平台,凭借十多年的经验和数千条反馈创建。

以前所未有的方式学习和提高您的编程技能。

试用 Programiz PRO
  • 交互式课程
  • 证书
  • AI 帮助
  • 2000+ 挑战