这是我到目前为止编写的代码,但我没有得到我想要的输出。我想知道代码中缺少的是什么。任何帮助将不胜感激。
def matVec(matrix,vector):
for i in range(len(matrix)):
result = []
total = 0
for j in range(len(vector)):
total += matrix[i][j] * vector[j]
result.append(total)
return result
matrix_0 = [[1, 2, 3],[2, 3, 4]]
vector_0 = [2, 2]
print(matVec(matrix_0,vector_0))
答案 0 :(得分:1)
这就是诀窍。这个错误就是你声明原始矩阵的方式。特别是,您必须声明矩阵对行中的元素进行分组,而不是像起始代码中那样列中的元素
为了遵守乘法矩阵与向量的规则,您将为matrix
的元素乘以vector
行的元素。给定一个大小为a
[=行大小,在您的情况下为3] x b
[=列大小,在您的情况下为2]的矩阵,您的向量必须具有等于{{1}的行数} [在你的情况下为2]。给定2 x 1向量,最终结果将是3 x 1向量
现在,当您运行代码时,b
会返回3,因为它应该是。如果您运行原始版本,则返回2作为值,并阻止最后一次计算得到结果向量的剩余第三个元素[即最后的len(matrix)
]
14