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

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

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: 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()
    }
}

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

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

Did you find this article helpful?