2016-06-26 1 views
1

complex64 유형의 여러 복소수가 포함 된 이진 파일이 있습니까? (즉, 실수 부분에 대해 4 바이트 유형의 float 및 허수 부분에 대해 4 바이트). 실수 부와 허수 부는 다중화되어 실수 부는 먼저 저장되고 허수 부 다음에 저장됩니다.Python에서 complex64 값 유형의 이진 파일을 읽는 방법

+0

갖고있는 샘플을 보여줄 수 있습니까? –

+0

complex64는 두 개의 32 비트 부동 소수점 (실수 및 허수 구성 요소)로 표현되는 복소수입니다. 파일에있는 내용입니까? –

+0

@Moses, 여기에 업로드 할 방법이 있는지 모르겠지만 파일의 복잡한 값은 GNURadio라는 프로그램에서 작성되었으며 문서에서는 복소수의 이진 파일이 실제 및 imag를 저장한다고합니다. 32 비트 부동 소수점 부분 (첫 번째 요소는 실제이고 두 번째 요소는 imag 임) 다음 명령을 사용하여 파일을 읽으려고했지만 예상했던 숫자를 얻을 수 없습니다. numpy.fromfile ('file_name', dtype = complex)' @Jacques, 네, 이것이 제가 가진 것입니다. 나는 [[0, 2 + j, -3.14-7.99j]'를 기대했지만'[0 + 7.81e-3j, -1.29e + 5 + 0j, 7.8e-3 -1.29e + 5j ]' – Doe

답변

1

complex64 배열을 [0, 2+j, -3.14-7.99j]에서 생성하여 파일에 저장하고 Python 내장형 complex 형식으로 읽음으로써 발생한 오류를 재현 할 수있었습니다.

타입은 내장형 complex 유형이 플레이트 양식에 따라 내 컴퓨터의 256 비트 (32 비트)와 다를 수있는 C double 크기입니다.

파일을 올바르게 읽으려면 numpy.fromfile('file_name', dtype=numpy.complex64)을 사용해야합니다. 즉, 복소수를 두 개의 32 비트 부동 소수점 숫자로 읽어야합니다.

관련 문제