用Python编写matlab代码

Rhe*_*els 1 python matlab

我有以下用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

use*_*916 7

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).