Kotlin Program to Multiply two Matrices by Passing Matrix to a Function

In this program, you'll learn to multiply two matrices using a function in Kotlin.

For matrix multiplication to take place, the number of columns of first matrix must be equal to the number of rows of second matrix. In our example, i.e.

c1 = r2

Also, the final product matrix is of size r1 x c2, i.e.

product[r1][c2]

You can also multiply two matrices without functions.

Example: Program to Multiply Two Matrices using a Function

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, secondMatrix: Array, r1: Int, c1: Int, c2: Int): Array {
    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) {
    println("Product of two matrices is: ")
    for (row in product) {
        for (column in row) {
            print("$column    ")
        }
        println()
    }
}

When you run the program, the output will be:

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 displayes 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)    _|

In our example, it takes place as:

|-    (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