1. 简介

矩阵是数学和计算机科学中的基础概念,广泛应用于机器学习、图像处理、计算机图形学等多个领域。

简单来说,矩阵是一个由数字组成的矩形阵列,我们可以将其理解为一个二维的数值网格。在 Kotlin 中,我们可以通过多维数组来表示矩阵。

在本文中,我们将学习如何在 Kotlin 中使用多维数组实现两个矩阵的加法与乘法操作。

2. 如何进行矩阵加法

要对两个矩阵执行加法运算,首先需要确保它们具有相同的维度,即行数和列数一致

确认无误后,我们就可以:

✅ 创建一个新的矩阵用于保存结果
✅ 遍历两个矩阵的每个元素,将对应位置的值相加
✅ 将结果存储到新矩阵中并返回

下面是实现代码:

fun addMatrices(matrix1: Array<Array<Int>>, matrix2: Array<Array<Int>>): Array<Array<Int>> {
    val row = matrix1.size
    val col = matrix1[0].size
    val sum = Array(row) { Array(col) { 0 } }

    for (i in 0 until row) {
        for (j in 0 until col) {
            sum[i][j] = matrix1[i][j] + matrix2[i][j]
        }
    }

    return sum
}

为了验证代码的正确性,我们可以写一个简单的单元测试:

@Test
fun `test cases to ensure correct addition of matrices`() {
    val matrix1 = arrayOf(
        arrayOf(1, 2),
        arrayOf(3, 4)
    )

    val matrix2 = arrayOf(
        arrayOf(5, 6),
        arrayOf(7, 8)
    )

    val expected = arrayOf(
        arrayOf(6, 8),
        arrayOf(10, 12)
    )

    assertArrayEquals(expected, addMatrices(matrix1, matrix2))
}

3. 如何进行矩阵乘法

矩阵乘法比加法复杂一些,需要注意以下几点:

⚠️ 第一个矩阵的列数必须等于第二个矩阵的行数,这样才能进行乘法操作。

最终结果矩阵的维度为:

✅ 行数 = 第一个矩阵的行数
✅ 列数 = 第二个矩阵的列数

计算每个元素时,我们需要:

✅ 将第一个矩阵的某一行与第二个矩阵的某一列对应元素相乘
✅ 然后将这些乘积累加,得到结果矩阵中的一个元素
✅ 遍历所有行和列完成整个矩阵的计算

以下是 Kotlin 实现代码:

fun multiplyMatrices(matrix1: Array<Array<Int>>, matrix2: Array<Array<Int>>): Array<Array<Int>> {
    val row1 = matrix1.size
    val col1 = matrix1[0].size
    val col2 = matrix2[0].size
    val product = Array(row1) { Array(col2) { 0 } }

    for (i in 0 until row1) {
        for (j in 0 until col2) {
            for (k in 0 until col1) {
                product[i][j] += matrix1[i][k] * matrix2[k][j]
            }
        }
    }

    return product
}

同样,我们可以通过单元测试来验证矩阵乘法的正确性:

@Test
fun `test cases to ensure correct multiplication of Matrices`() {
    val matrix1 = arrayOf(
        arrayOf(1, 2),
        arrayOf(3, 4)
    )

    val matrix2 = arrayOf(
        arrayOf(5, 6),
        arrayOf(7, 8)
    )

    val expected = arrayOf(
        arrayOf(19, 22),
        arrayOf(43, 50)
    )

    assertArrayEquals(expected, multiplyMatrices(matrix1, matrix2))
}

4. 小结

在本文中,我们学习了如何使用 Kotlin 实现矩阵的加法与乘法,并通过单元测试验证了其实现逻辑的正确性。

矩阵作为一种强大的数据结构,在多个技术领域中都有广泛应用。掌握其基本操作,是进一步深入相关技术方向的必备基础。

如需查看完整示例代码,欢迎访问:GitHub 仓库地址


原始标题:Matrix Addition and Multiplication in Kotlin