Python 创建一个类,通过自定义方法进行矩阵乘法运算

Document 对象参考手册 Python3 实例

我们将创建一个名为 Matrix 的类,该类包含一个自定义方法 multiply,用于执行矩阵乘法运算。矩阵乘法要求第一个矩阵的列数等于第二个矩阵的行数。

实例

class Matrix:
    def __init__(self, data):
        self.data = data
        self.rows = len(data)
        self.cols = len(data[0]) if self.rows > 0 else 0

    def multiply(self, other):
        if self.cols != other.rows:
            raise ValueError("The number of columns in the first matrix must be equal to the number of rows in the second matrix.")

        result = [[0 for _ in range(other.cols)] for _ in range(self.rows)]

        for i in range(self.rows):
            for j in range(other.cols):
                for k in range(self.cols):
                    result[i][j] += self.data[i][k] * other.data[k][j]

        return Matrix(result)

    def __str__(self):
        return 'n'.join([' '.join(map(str, row)) for row in self.data])

# 示例使用
matrix1 = Matrix([[1, 2, 3], [4, 5, 6]])
matrix2 = Matrix([[7, 8], [9, 10], [11, 12]])

result_matrix = matrix1.multiply(matrix2)
print(result_matrix)

代码解析:

  1. __init__ 方法用于初始化矩阵对象,接受一个二维列表 data 作为参数,并计算矩阵的行数和列数。
  2. multiply 方法用于执行矩阵乘法运算。首先检查第一个矩阵的列数是否等于第二个矩阵的行数,如果不相等则抛出异常。然后创建一个结果矩阵,使用三重循环计算每个元素的值。
  3. __str__ 方法用于将矩阵对象转换为字符串形式,便于打印输出。
  4. 示例中创建了两个矩阵 matrix1matrix2,并调用 multiply 方法进行矩阵乘法运算,最后打印结果。

输出结果:

58 64
139 154

Document 对象参考手册 Python3 实例