【发布时间】:2016-11-01 06:26:08
【问题描述】:
我有以下代码,我一直在尝试使用if-条件创建一个三对角矩阵x。
#!/usr/bin/env python
# import useful modules
import numpy as np
N=5
x=np.identity(N)
#x=np.zeros((N,N))
print x
# Construct NxN matrix
for i in range(N):
for j in range(N):
if i-j==1:
x[i][j]=1
elif j-1==1:
x[i][j]=-1
else:
x[i][j]=0
print "i= ",i," j= ",j
print x
我想得到
[[ 0. -1. 0. 0. 0.]
[ 1. 0. -1. 0. 0.]
[ 0. 1. 0. -1 0.]
[ 0. 0. 1. 0. -1.]
[ 0. 0. 0. 1. 0.]]
但是,我得到了
[[ 0. 0. -1. 0. 0.]
[ 1. 0. -1. 0. 0.]
[ 0. 1. -1. 0. 0.]
[ 0. 0. 1. 0. 0.]
[ 0. 0. -1. 1. 0.]]
怎么了?
额外问题:在这个示例中,我可以强制索引从 1 到 5 而不是 0 到 4,或者 Python 不允许这样做吗?
【问题讨论】:
-
你确定不是
j-i == 1? -
查看stackoverflow.com/questions/5842903/… 以获得更优雅的解决方案