我发现下面的代码中的doctest正是在函数中找到了什么。
有人可以让我更清楚吗?
- 编写函数row_times_column和matrix_mult:
醇>
def row_times_column(m1, row, m2, column):
"""
>>> row_times_column([[1, 2], [3, 4]], 0, [[5, 6], [7, 8]], 0)
19
>>> row_times_column([[1, 2], [3, 4]], 0, [[5, 6], [7, 8]], 1)
22
>>> row_times_column([[1, 2], [3, 4]], 1, [[5, 6], [7, 8]], 0)
43
>>> row_times_column([[1, 2], [3, 4]], 1, [[5, 6], [7, 8]], 1)
50
"""
def matrix_mult(m1, m2):
"""
>>> matrix_mult([[1, 2], [3, 4]], [[5, 6], [7, 8]])
[[19, 22], [43, 50]]
>>> matrix_mult([[1, 2, 3], [4, 5, 6]], [[7, 8], [9, 1], [2, 3]])
[[31, 19], [85, 55]]
>>> matrix_mult([[7, 8], [9, 1], [2, 3]], [[1, 2, 3], [4, 5, 6]])
[[39, 54, 69], [13, 23, 33], [14, 19, 24]]
"""
将新函数添加到matrices.py并确保它通过了 上面的doctests。
答案 0 :(得分:3)
它要求你实现一些矩阵乘法方法。
在第一个中,给定一个矩阵,将m1的行乘以m2的列。给出的第一个是:
1 2 times 5 6
3 4 7 8
但是我们只想要第0行col 0,所以它将是
[1 2] x 5
7
= 5 + 14 = 19.等等其他人......
第二个函数想要一个完整的矩阵乘法。见http://en.wikipedia.org/wiki/Matrix_multiplication
答案 1 :(得分:3)
第一个函数,docstring中的第一个示例:从第一个矩阵([1, 2]
)中取第0行并将其乘以第二个矩阵的第0列([5, 7]
)
1 x 5 + 2 x 7 = 19
第二个功能只是标准matrix multiplication。您可以使用第一个函数来回答此问题。
答案 2 :(得分:1)
第一个函数row_times_column
将第一个矩阵的第n行乘以第二个矩阵的第m列。在第一个doctest中,例如n = 0
和m = 0
,我们将行矩阵[1, 2]
乘以列矩阵[5, 7]
,得到1 * 5 + 2 * 7
,它是相等的到指定的19
。
第二个函数是泛化,第二个函数必须multiply第一个矩阵。您可能应该使用第一个函数。链接的文章展示了如何从逐列乘法的组合中获得矩阵乘法。