我有以下用Matlab编写的代码:
>>> fid = fopen('filename.bin', 'r', 'b')
>>> %separated r and b
>>> dim = fread(dim, 2, 'uint32');
Run Code Online (Sandbox Code Playgroud)
如果我在Python中使用"等效"代码
>>> fid = open('filename.bin', 'rb')
>>> dim = np.fromfile(fid, dtype=np.uint32)
Run Code Online (Sandbox Code Playgroud)
当我使用Python时,我得到了不同的暗淡值.
有人知道如何在Python中使用Matlab('r'和'b'分隔)等权限打开这个文件?
提前致谢,
Rhenan
从Matlab docs我了解到你的第三个参数'b'代表Big-Endian排序,不是权限.
Numpy很可能在你的机器上使用little-endian命令.要解决此问题,请尝试在Numpy中明确指定排序(就像在Matlab中一样):
>>> fid = open('filename.bin', 'rb')
>>> dim = np.fromfile(fid, dtype='>u4')
Run Code Online (Sandbox Code Playgroud)
所述dtype串代表大端(">"),无符号整数("U"),4个字节数.
另请参见Numpy引用中的数据类型对象(dtype).