使用嵌套的 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 循环实现矩阵向量乘法的标量、行变体的主要内容,如果未能解决你的问题,请参考以下文章

pytorch笔记:pytorch的乘法

关于for循环

吴恩达《机器学习》课程总结_线性代数回顾

DolphinDB 中矩阵和向量的元素乘法

将矩阵的行乘以向量(低级优化)?

矩阵向量乘法的更快实现【并行计算】