Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/338.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/matlab/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
从Matlab到Python的转换。列表索引超出范围。_Python_Matlab - Fatal编程技术网

从Matlab到Python的转换。列表索引超出范围。

从Matlab到Python的转换。列表索引超出范围。,python,matlab,Python,Matlab,有人知道为什么它告诉我列表索引超出范围吗?我试图“翻译”一个Matlab文件,我创建了列表而不是单元格数组,现在主要的问题在于索引,我觉得它是正确的,我不知道怎么会有问题 #Projection operator Pi piOperator = np.zeros((N*N, N*N)) #Psi0 state Psi0 = np.zeros((N*N, 1)) for i in xrange(0 , N-1 ): aux = np.zeros((N,1)) #Auxiliary ve

有人知道为什么它告诉我列表索引超出范围吗?我试图“翻译”一个Matlab文件,我创建了列表而不是单元格数组,现在主要的问题在于索引,我觉得它是正确的,我不知道怎么会有问题

#Projection operator Pi
piOperator = np.zeros((N*N, N*N)) 

#Psi0 state
Psi0 = np.zeros((N*N, 1))
for i in xrange(0 , N-1 ):
    aux = np.zeros((N,1)) #Auxiliary vector 
    aux[i]= 1
    A =  np.sqrt(G[:,i])
    psi = []
    P = [] 
    psi.append(np.tensordot(aux, A))
    P.append(np.dot(psi[i],np.transpose(psi[i])))
    piOperator = piOperator + P[i]
    Psi0 = Psi0 + psi[i] 


Psi0 = 1/np.sqrt(N)*Psi0 


---------------------------------------------------------------------------
IndexError                                Traceback (most recent call    last)
<ipython-input-450-0816498ad018> in <module>()
 11     P = []
 12     psi.append(np.tensordot(aux, A))
 ---> 13     P.append(np.dot(psi[i],np.transpose(psi[i])))
 14     piOperator = piOperator + P[i]
 15     Psi0 = Psi0 + psi[i]

 IndexError: list index out of range 

每次迭代都要清除psi变量。只需在循环之前初始化它:

#Projection operator Pi
piOperator = np.zeros((N*N, N*N)) 

#Psi0 state
Psi0 = np.zeros((N*N, 1))
psi = []
P = [] 
for i in xrange(0 , N-1 ):
    aux = np.zeros((N,1)) #Auxiliary vector 
    aux[i]= 1
    A =  np.sqrt(G[:,i])
    psi.append(np.tensordot(aux, A))
    P.append(np.dot(psi[i],np.transpose(psi[i])))
    piOperator = piOperator + P[i]
    Psi0 = Psi0 + psi[i] 


Psi0 = 1/np.sqrt(N)*Psi0 

每次迭代都要清除psi变量。只需在循环之前初始化它:

#Projection operator Pi
piOperator = np.zeros((N*N, N*N)) 

#Psi0 state
Psi0 = np.zeros((N*N, 1))
psi = []
P = [] 
for i in xrange(0 , N-1 ):
    aux = np.zeros((N,1)) #Auxiliary vector 
    aux[i]= 1
    A =  np.sqrt(G[:,i])
    psi.append(np.tensordot(aux, A))
    P.append(np.dot(psi[i],np.transpose(psi[i])))
    piOperator = piOperator + P[i]
    Psi0 = Psi0 + psi[i] 


Psi0 = 1/np.sqrt(N)*Psi0 

你能发布一个完整的代码片段吗?例如,缺少G。您可以发布完整的代码片段吗?例如,G不见了。非常感谢!我真是个傻瓜:)太谢谢你了!我真是个傻瓜:)