编写一个矩阵相加函数 mat_add(),使其具体的调用格式为 A=mat_add(A1,A2,A3,),要求该函数能接受任意多个矩阵进行解法运算。
时间: 2024-09-18 19:09:25 浏览: 23
在Python中,可以使用*运算符来获取不定数量的位置实参,这允许你创建一个能够接受任意数量矩阵的函数。以下是`mat_add`函数的一个实现,使用numpy库来进行矩阵相加:
```python
import numpy as np
def mat_add(*args):
# 检查所有输入是否都是numpy数组(或可以转换为数组)
for arg in args:
if not isinstance(arg, (np.ndarray, list)):
raise TypeError("All inputs must be either numpy arrays or lists.")
# 将所有输入转换为numpy数组
matrices = [np.array(arg) if isinstance(arg, list) else arg for arg in args]
# 如果没有矩阵,则返回空数组
if len(matrices) == 0:
return np.array([])
# 对所有矩阵求和
result = matrices[0]
for matrix in matrices[1:]:
result += matrix
return result
# 示例调用
A1 = np.array([[1, 2], [3, 4]])
A2 = np.array([[5, 6], [7, 8]])
A3 = np.array([[9, 10], [11, 12]])
A = mat_add(A1, A2, A3)
print(A)
```
这个`mat_add`函数会检查每个输入是否为numpy数组或列表,然后将它们添加到一起得到最终的和。如果你想要添加更多的矩阵,只需按照`A1`, `A2`, `A3`这样的顺序传递即可。
阅读全文