2016-03-07 77 views

回答

1

由于您的问题的反对建议,您应该尝试以更好的方式解释您的问题。话虽如此,我最好的猜测是你正在寻找超对角矩阵和次对角矩阵;即:

Superdiagonal:

0 1 0 0 
0 0 1 0 
0 0 0 1 
0 0 0 0 

次对角:

0 0 0 0 
1 0 0 0 
0 1 0 0 
0 0 1 0 

如果是这样的话,那么你可以使用numpy的的indices

import numpy as np 
superdiagonal = np.zeros((4, 4)) 
i, j = np.indices(superdiagonal.shape) 
superdiagonal[i == j-1] = 1 
print(superdiagonal) 

这将给你:

array([[ 0., 1., 0., 0.], 
     [ 0., 0., 1., 0.], 
     [ 0., 0., 0., 1.], 
     [ 0., 0., 0., 0.]]) 

对于次对角,你只需要在i == j-1部分更改为i == j+1

+0

非常感谢你这就是我所问的 – Edsson