2014-04-16 3 views
2

복소수 행렬을 저장하기 위해 numpy를 사용했습니다. 내가 NumPy와 data = np.loadtxt('PsiPfree1.out', delimiter='\t', dtype=np.complex128)를 사용하여 그것을 읽는 시도, 이제Numpy가 텍스트 파일의 복소수 읽기

(1.100412357301083777e-02+1.471303433818593742e-02j)  (1.511426586599529109e-02+-2.516143258497194335e-03j) 
(1.084202636262432407e-02+1.438252996657629623e-02j)  (1.447620213198375083e-02+4.471111098343749646e-03j)  

을하지만, 나는 다음과 같은 오류가 발생합니다 : 출력 파일은 그 모양

items = [conv(val) for (conv, val) in zip(converters, vals)] 
ValueError: complex() arg is a malformed string` 

나는이 작업을 얻을 수있는 모든 아이디어를 어떻게가?

편집 :

1.100412357301083777e-02+1.471303433818593742e-02j 1.511426586599529109e-02+-2.516143258497194335e-03j 
1.084202636262432407e-02+1.438252996657629623e-02j 1.447620213198375083e-02+4.471111098343749646e-03j 

이 같은 문제가 발생합니다 나는 이제 행렬은 다음과 같이 구성하는 괄호없이 시도했다.

+0

이것은 아마도 괄호의 원인 일 것입니다. 그 첫 번째를 없애 –

+0

나는 공백으로 교체하여 시도했다. 똑같은 오류. –

+0

공백/괄호/쉼표/​​구불 구불 한 선을 사용하지 마십시오. 값 사이의 분리.자는 분리. 자로 지정하는. 자열과 해당. 자열이어야합니다. –

답변

1

문제는 numpy savetxt 함수 np.savetxt('PsiPges.out',PsiPges , delimiter='\t')이 데이터 행렬을 내 보냈지 만, 모든 음수 허수 부분에 대해서는 +- (위에 게시 된 행렬 참조)을 씁니다. 이 값을 -으로 바꾸면 loadtxt 기능이 올바르게 작동합니다.

+0

오, 알았습니다. 마이너스를 제거하면 문제를 해결할 수 있다고 생각했는데 잘못된 값을 부여했을 것입니다. –

+0

;) 아니요. 시간 내 주셔서 감사합니다. 나는 결코 그것을 발견하지 못했습니다. –