我有一个二维矩阵,它可以是任何大小,但总是一个正方形。我想遍历矩阵并为每个对角线元素(示例中的 x)分配值 1-sum_of_all_other_values_in_the_row 例如

Mtx = [[ x ,.2 , 0 ,.2,.2]
       [ 0 , x ,.4 ,.2,.2]
       [.2 ,.2 , x , 0, 0]
       [ 0 , 0 ,.2 , x,.2]
       [ 0 , 0 , 0 , 0, x]]

for i in enumerate(Mtx):
    for j in enumerate(Mtx):
        if Mtx[i][j] == 'x'
            Mtx[i][j] = 1-sum of all other [j]'s in the row

我不知道如何获得每行中 j 的总和

最佳答案

for i,row in enumerate(Mtx): #same thing as `for i in range(len(Mtx)):`
    Mtx[i][i]=0
    Mtx[i][i]=1-sum(Mtx[i])

    ##could also use (if it makes more sense to you):
    #row[i]=0
    #Mtx[i][i]=1-sum(row)

关于python - 用其他元素的总和分配一个列表元素,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/11439213/

10-13 06:54