此代码显示以下错误,不知道原因: 回溯(最近一次呼叫): “文件”测试求解器.py“,第24行,in S[j:j+NFM[i],:]=S[i]/2.0 TypeError:列表索引必须是整数,而不是元组
import numpy as np
mu = np.array([ -0.8611363115, -0.3399810435, 0.3399810435, 0.8611363115 ])
wt = np.array([ 0.3478548451, 0.6521451549, 0.6521451549, 0.3478548451 ])
NCM = [0.0,1.0,2.0,3.0]
NFM = [3,4,5]
mt = [0,1,2]
S = [1,1,1]
totNFM = np.sum(NFM)
Q = S
psi = np.zeros((totNFM + 1 , 4))
phi = np.zeros(totNFM)
FMMID = np.zeros((totNFM, 1))
delta = np.zeros((totNFM, 1))
j = 0
#Compute Discretization##
for i in range(0, len(NFM)):
delta[j: j+NFM[i]] = (NCM[i+1] - NCM[i])/NFM[i]
S[j: j+NFM[i], :] = S[i] / 2.0
FMMID[j: j+NFM[i]] = RegMat[i]
j = np.sum[NFM[0:i]]
删除逗号:
应该是:
既然您不使用step,您可以使用:
使用切片时正确的sintax是
[start:stop:step]
所以
S[j: j+NFM[i], :]
是不正确的。它应该是S[j: j+NFM[i] :]
,不带逗号。你知道吗好的,我认为语法是正确的。
S[j: j+NFM[i], :] = S[i] / 2.0
这实际上是在创建一行。问题在于一个任意的源声明S = [1,1,1]
,它实际上是一个输入错误(TypeError)。我把它改成S = np.zeros((totNFM,4))
,错误就消失了。你知道吗相关问题 更多 >
编程相关推荐