1.定义一个二维方阵类matrix。通过重载二元运算符“*”,来实现矩阵乘。
时间: 2024-10-25 20:13:58 浏览: 21
当你定义一个二维数组(矩阵)类Matrix的时候,为了实现矩阵乘法的功能,你需要创建一个类,通常包含成员变量表示矩阵的行和列,以及元素的二维数组。这里是一个简单的Python示例:
```python
class Matrix:
def __init__(self, rows, cols, data=None):
self.rows = rows
self.cols = cols
if data is None:
self.data = [[0] * cols for _ in range(rows)]
else:
assert len(data) == rows and all(len(row) == cols for row in data), "Invalid matrix dimensions"
self.data = data
# 重载 '*' 运算符,用于矩阵乘法
def __mul__(self, other):
if isinstance(other, Matrix) and self.cols == other.rows:
result = Matrix(self.rows, other.cols)
for i in range(result.rows):
for j in range(result.cols):
for k in range(self.cols):
result.data[i][j] += self.data[i][k] * other.data[k][j]
return result
else:
raise ValueError("Cannot multiply matrices of incompatible sizes")
# 示例用法
m1 = Matrix(2, 2, [[1, 2], [3, 4]])
m2 = Matrix(2, 2, [[5, 6], [7, 8]])
result = m1 * m2 # 现在你可以执行矩阵乘法了
```
在这个例子中,`__mul__`方法实现了两个Matrix对象相乘的操作,如果它们的维度适合(即第一个矩阵的列数等于第二个矩阵的行数),则返回一个新的矩阵,否则会抛出错误。
阅读全文