欢迎访问宙启技术站
智能推送

Python中如何使用函数来实现矩阵相乘?

发布时间:2023-07-04 11:23:42

在Python中,可以通过使用函数来实现矩阵相乘。以下是一个实现矩阵相乘的函数的例子:

def matrix_multiply(matrix1, matrix2):
    # 获取矩阵1的行数和列数
    rows1 = len(matrix1)
    cols1 = len(matrix1[0])

    # 获取矩阵2的行数和列数
    rows2 = len(matrix2)
    cols2 = len(matrix2[0])

    # 检查矩阵能否相乘
    if cols1 != rows2:
        print("The number of columns in matrix1 should be equal to the number of rows in matrix2.")
        return None

    # 创建结果矩阵
    result = [[0] * cols2 for _ in range(rows1)]

    # 执行矩阵相乘
    for i in range(rows1):
        for j in range(cols2):
            for k in range(cols1):
                result[i][j] += matrix1[i][k] * matrix2[k][j]

    return result

以上代码定义了一个名为matrix_multiply的函数,该函数接受两个矩阵作为参数,并返回它们的乘积。在函数中,首先通过len()函数获取输入矩阵的行数和列数,然后检查两个矩阵是否满足相乘的条件,即矩阵1的列数等于矩阵2的行数。如果不满足条件,函数将打印出错误信息并返回None

接下来,函数创建一个结果矩阵,使用嵌套的for循环来执行矩阵相乘的操作。最外层的两个循环用于分别遍历结果矩阵的行和列。内部的第三个循环用于计算矩阵元素的乘积,并将结果累加到结果矩阵的相应位置。

最后,函数返回计算得到的结果矩阵。

要使用该函数来计算矩阵相乘,只需将源矩阵作为参数传递给该函数,如下所示:

matrix1 = [[1, 2, 3],
           [4, 5, 6],
           [7, 8, 9]]

matrix2 = [[10, 11],
           [12, 13],
           [14, 15]]

result = matrix_multiply(matrix1, matrix2)
print(result)

运行以上代码将输出矩阵相乘的结果:

[[76, 82],
 [184, 199],
 [292, 316]]

以上示例展示了如何使用Python函数来实现矩阵相乘。通过定义一个函数,我们可以将矩阵相乘的逻辑封装起来,提高代码的可重用性和可读性。