1
저는 Python을 처음 사용합니다 - 저는 matlab에서 왔습니다. 이 코드를 컴파일하려고 : python3 sparse.py [name of file]
실행 한 후재귀 파이썬 행렬을 희박하게 덧붙임
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
를, 단말기는 다음과 같은 텍스트 출력 :
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
TNX하지만 Sigs1 sparse.csr_matrix = (0,() 희미 희미) 영역 (N-1)에 대한 J 제거하면 : 범위 내가 위해 SIG1 sparse.csr_matrix = 1 (N -1) : 는 SIG1 = sparse.kron (SIG1는 ssx.power은 (expon1는 [난, j는])) Sigs1 = Sigs1 + SIG1 코드는 코드가 불평하지 않는 부분을 제거하면 –
을 작동하지만, 그것이 작동한다는 것을 의미하지는 않습니다. 귀하의 코드 문제는'dim = 2^n'은 8 대신 1을 반환합니다. –
조언을위한 thx, dim = 8 변경은 가장 실용적이지만 문제는 add에 있습니다 : Sigs1 = Sigs1 + Sig1 파일 "/usr/lib/python3/dist-packages/scipy/sparse/base.py", 280 행, __add__에 있음 –