pta6-4 矩阵与向量的乘法
时间: 2025-04-07 20:17:08 浏览: 32
### 关于矩阵与向量乘法的实现
在矩阵与向量乘法中,核心原则是确保矩阵的列数等于向量的维度。如果满足这一条件,则可以通过逐行计算的方式完成乘法操作[^1]。
以下是基于 Python 的一种常见实现方式:
```python
import numpy as np
def matrix_vector_multiplication(matrix, vector):
"""
实现矩阵与向量的乘法
参数:
matrix (list of list): 输入的二维列表表示的矩阵
vector (list): 输入的一维列表表示的向量
返回:
result (list): 结果向量
"""
# 将输入转换为 NumPy 数组以便简化运算
A = np.array(matrix)
v = np.array(vector)
# 判断是否可以执行乘法
if A.shape[1] != v.shape[0]:
raise ValueError("无法进行矩阵与向量的乘法:矩阵的列数不等于向量的长度")
# 执行乘法并返回结果
result = np.dot(A, v)
return result.tolist()
# 测试用例
matrix_example = [[1, 2], [3, 4]]
vector_example = [2, 3]
result = matrix_vector_multiplication(matrix_example, vector_example)
print(result) # 输出应为 [8, 18]
```
上述代码实现了矩阵与向量之间的基本乘法规则,并通过 `numpy` 提供的支持来优化性能和可读性。
对于特殊情况下的处理(如其中一个因子为 \(1 \times 1\) 矩阵),可以直接将其视为标量并与另一个矩阵或向量按比例缩放[^2]。
---
#### 特殊情况说明
当其中一方为 \(1 \times 1\) 矩阵时,实际上该矩阵退化为一个数值常量。在这种情况下,无需按照标准矩阵乘法规则处理,而是直接应用数乘规则即可。
例如:
```python
scalar_matrix = [[5]] # 这里实际上是标量 5
normal_matrix = [[1, 2], [3, 4]]
scaled_result = scalar_matrix[0][0] * normal_matrix
print(scaled_result) # 输出应为 [[5, 10], [15, 20]]
```
此逻辑适用于任何大小的矩阵与单个数值相乘的情况。
---
阅读全文
相关推荐
















