2016-03-07 80 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