【问题标题】:Implement the scalar-wise, row-variant of the matrix-vector multiplication using nested for loops使用嵌套的 for 循环实现矩阵向量乘法的标量、行变体
【发布时间】: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 矩阵相乘,然后对结果向量求和吗?

标签: python arrays vectorization nested-loops matrix-multiplication


【解决方案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

祝你的决赛好运。

【讨论】:

    猜你喜欢
    • 2021-11-02
    • 2021-12-09
    • 1970-01-01
    • 2020-03-16
    • 1970-01-01
    • 2012-11-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多