矩阵相乘的实现。构建n维整数矩阵X,Y,计算 Z=X*Y 要求1: 使用循环结构 要求2: 完全不使用循环
时间: 2024-09-23 13:02:59 浏览: 44
矩阵相乘是一个线性代数的基础操作,在计算机程序中通常通过嵌套循环实现。对于两个给定的二维矩阵A和B,结果矩阵C的每个元素C[i][j]等于A的第i行与B的第j列对应元素的乘积之和。
**使用循环结构实现**:
```python
def matrix_multiply(A, B):
m, n = len(A), len(B[0]) # A的行数和B的列数
result = [[0] * n for _ in range(m)] # 初始化结果矩阵
for i in range(m): # 遍历A的每一行
for j in range(n): # 遍历B的每一列
for k in range(len(B)): # 遍历B的所有行
result[i][j] += A[i][k] * B[k][j]
return result
```
**完全不使用循环实现**(利用NumPy库,Python中常用的做法):
```python
import numpy as np
def matrix_multiply(A, B):
if len(A[0]) != len(B): # 检查能否相乘
raise ValueError("Matrix dimensions do not match.")
return np.dot(A, B) # 使用numpy的dot函数完成矩阵乘法
```
在这个例子中,`np.dot()`内部已经优化了算法,避免了手动的循环操作。
阅读全文