使用嵌套的 for 循环实现矩阵向量乘法的标量、行变体
Posted
技术标签:
【中文标题】使用嵌套的 for 循环实现矩阵向量乘法的标量、行变体【英文标题】:Implement the scalar-wise, row-variant of the matrix-vector multiplication using nested for loops 【发布时间】:2022-01-21 06:23:12 【问题描述】:我想编写一个函数 matvec_row_variant_scalar(A,x) 来实现矩阵向量乘法的标量行变体,其中 A 是二维数组,x 是一维数组。它必须使用两个嵌套循环和对 ???? 条目的标量访问。和 ???? .这是我尝试过的。
Matrix12 = np.array([[3, 7, 0], [-9,1,4], [4,6,8]])
vector42 = np.array([5,1,9])
def matvec_row_variant_scalar(A,x):
row_sum = []
calc = 0
for row in A:
for i in row:
calc += i * x
return row_sum.append(calc)
matvec_row_variant_scalar(Matrix12, vector42)
【问题讨论】:
旁注,markdown 中的“代码”标记是三个重音符号(```),而不是三个撇号。这是今天的一个大问题。 这不是简单的 3x3 乘以 3x1 矩阵相乘,然后对结果向量求和吗? 【参考方案1】:只需使用索引。这样会更容易。
def matvec_row_variant_scalar(A,x):
row_sum = np.zeros(A.shape[0])
for i in range(A.shape[0]):
for j in range(A.shape[1]):
row_sum[i] += A[i, j] * x[j]
return row_sum
祝你的决赛好运。
【讨论】:
以上是关于使用嵌套的 for 循环实现矩阵向量乘法的标量、行变体的主要内容,如果未能解决你的问题,请参考以下文章