我是Python的新手-我来自matlab。我正在尝试编译以下代码:

import numpy as np
from scipy import sparse

n=3
dim=2^n

sx = np.array([[0,1],[1,0]])
sy = np.array([[0,-1j],[1j,0]])
sz = np.array([[1,0],[0,-1]])
ssx= sparse.csr_matrix(sx)
ssy= sparse.csr_matrix(sy)
ssz= sparse.csr_matrix(sz)


expon1=np.zeros((n,n))
for i in range(n-1):
    expon1[i,i]=1
    expon1[i+1,i]=1
expon1[0,n-1]=1
expon1[n-1,n-1]=1
expon2=np.identity(n)

Sigs1=sparse.csr_matrix(0,(dim, dim))
for j in range(n-1):
    Sig1=sparse.csr_matrix(1)
    for i in range(n-1):
        Sig1=sparse.kron(Sig1,ssx.power(expon1[i,j]))
    Sigs1= Sigs1+Sig1

运行python3 sparse.py [name of file]后,终端将输出以下文本:
Traceback (most recent call last):
  File "sparse.py", line 31, in <module>
    Sigs1= Sigs1+Sig1
  File "/usr/lib/python3/dist-packages/scipy/sparse/compressed.py", line 341, in __add__
    raise ValueError("inconsistent shapes")
ValueError: inconsistent shapes

最佳答案

我没有遍历您的整个代码,但是看着它,我可以说您的问题可能在这里。

n=3
dim=2^n

python中的^运算符用于按位XOR,而**则用于处理功率。

关于python - 递归添加python矩阵稀疏,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/47275191/

10-12 20:42