我有下面修改过的一段代码,这是模仿MatLab的一段代码,效果不错
import numpy as np
import math
dt = 1e-2; # time step
t = np.arange(0, 7, dt) # t
mt=2
nt=2
rho=np.zeros((2,2,2,2))
Pe=np.array([[1,0],[0,0]])
Sm=np.array([[0,0],[1,0]])
Sz=np.array([[1,0],[0,- 1]])
Sy=np.array([[0,- 1j],[1j,0]])
Sx=[[0,1],[1,0]]
exp_Sz=np.zeros((2,2,len(t)))
exp_Sy=np.copy(exp_Sz)
exp_Sx=np.copy(exp_Sz)
exp_Pe=np.copy(exp_Sz)
for indx in (1,mt):
for jndx in (1,nt):
exp_Sz[indx,jndx,1]=np.trace(rho[:,:,indx,jndx] * Sz)
exp_Sy[indx,jndx,1]=np.trace(rho[:,:,indx,jndx] * Sy)
exp_Sx[indx,jndx,1]=np.trace(rho[:,:,indx,jndx] * Sx)
exp_Pe[indx,jndx,1]=np.trace(rho[:,:,indx,jndx] * Pe)
但我得到以下错误
exp_Sz[indx,jndx,1]=np.trace(rho[:,:,indx,jndx] * Sz)
IndexError: index 2 is out of bounds for axis 3 with size 2
我不确定错误是什么。你知道吗
任何帮助都将不胜感激, 谢谢!你知道吗
上面的嵌套循环迭代两个元素元组,只包含元素
1
和mt
(外循环)以及1
和nt
(内循环)。你知道吗您可能希望迭代
range(mt)
和range(nt)
。你知道吗注意numpy数组是基于0索引的。你知道吗
相关问题 更多 >
编程相关推荐