In this program, you'll learn to multiply two matrices using multi-dimensional arrays 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 using functions.

```
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 = 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]
}
}
}
// Displaying the result
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:

Product of two matrices is: 24 29 6 25

In the above program, the multiplication takes place as:

|^{-}(a_{11}x b_{11}) + (a_{12}x b_{21}) + (a_{13}x b_{31}) (a_{11}x b_{12}) + (a_{12}x b_{22}) + (a_{13}x b_{32})^{-}| |_ (a_{21}x b_{11}) + (a_{22}x b_{21}) + (a_{23}x b_{31}) (a_{21}x b_{12}) + (a_{22}x b_{22}) + (a_{23}x b_{32}) _|

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