如何在Python中读取complex64值类型的二进制文件
我有一个二进制文件,其中包含多个类型为complex64的复数?(即,四个字节的浮点型表示实部,另外四个字节表示虚部)。实部和虚部被多路复用,以便先存储实部,然后存储虚部。我通过从如何在Python中读取complex64值类型的二进制文件,python,Python,我有一个二进制文件,其中包含多个类型为complex64的复数?(即,四个字节的浮点型表示实部,另外四个字节表示虚部)。实部和虚部被多路复用,以便先存储实部,然后存储虚部。我通过从[0,2+j,-3.14-7.99j]创建一个complex64数组,将其保存到一个文件中,并以Python内置complex类型读取,从而重现了您遇到的错误 问题在于,内置的复杂类型的大小为C双精度,这取决于您的平台,可能不同于32位(在我的机器上为256位) 您必须使用numpy.fromfile('file_na
[0,2+j,-3.14-7.99j]
创建一个complex64
数组,将其保存到一个文件中,并以Python内置complex
类型读取,从而重现了您遇到的错误
问题在于,内置的复杂类型的大小为C双精度
,这取决于您的平台,可能不同于32位(在我的机器上为256位)
您必须使用numpy.fromfile('file_name',dtype=numpy.complex64)
来正确读取文件,即确保将复数读取为两个32位浮点数。您可以展示一个示例吗?complex64是由两个32位浮点数(实部和虚部)表示的复数。这是你的文件吗?@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]
文件在这里:。为什么不执行numpy.fromfile('file\u name',dtype=numpy.complex64)
?似乎表明了与我上面的评论相同的用途