2017-11-13 9 views
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 

답변

0
나는 전체 코드를 통해 이동 didnt가

을하지만, 그것을보고하는 것은 나는 문제를 말할 수 아마 여기있을거야. 이 ** 전력 대한 동안

n=3 
dim=2^n 

파이썬이 ^ 비트 XOR 연산자위한 것이다.

+0

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 코드는 코드가 불평하지 않는 부분을 제거하면 –

+0

을 작동하지만, 그것이 작동한다는 것을 의미하지는 않습니다. 귀하의 코드 문제는'dim = 2^n'은 8 대신 1을 반환합니다. –

+0

조언을위한 thx, dim = 8 변경은 가장 실용적이지만 문제는 add에 있습니다 : Sigs1 = Sigs1 + Sig1 파일 "/usr/lib/python3/dist-packages/scipy/sparse/base.py", 280 행, __add__에 있음 –