Python矩阵加对角线元素

3
我需要制作一个小程序,用于获取一个4x4的矩阵,并将行列对角线上的数字相加。
1 2 3 4
1 2 3 4
1 2 3 4
1 2 3 4

像这样会加上1+2+3+4。

抱歉有点模糊,这是我想到的按列直接向下添加矩阵的方法。我还没有使用numpy。

matrix = [1,2,3,4],[5,6,7,8],[9,10,11,12] #Assume a list is given
total = 0
    for column in range(0, len(matrix[0])):
        for row in range(0, len(matrix)):
            total += matrix[row][column]
        print("Sum for column " + str(column) + " is " + str(total))
        total = 0   #Reset total to zero before restarting count

我不确定从何处入手,所以任何想法都是有帮助的。我的老师给了我们一个提示,是偏移量


2
如果您展示一下您已经完成的部分以及遇到的问题,那会很有帮助。目前来看,这是一个相当简单的问题,这让人觉得这是一个“请你帮我做作业”的问题。通常情况下,我们更愿意回答那些让我们感觉自己在帮助您学习而不仅仅是提供答案的问题。 - mgilson
如果这里的任何答案能够解决您的问题,请务必通过点击左侧的绿色复选标记“接受”最佳答案。 - StardustGogeta
2个回答

3
对角线上的元素在相同的行列坐标处:
matrix = [[1,2,3,4],
          [1,2,3,4],
          [1,2,3,4],
          [1,2,3,4]]
answer = sum(matrix[i][i] for i in range(len(matrix)))

3

使用NumPy很简单

>>> import numpy as np
>>> matrix = [[1,2,3,4],
              [1,2,3,4],
              [1,2,3,4],
              [1,2,3,4]]
>>> sum(np.diag(matrix))
10

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接