将读取二进制文件的MATLAB代码转为Python,求等价实现
MATLAB二进制文件读取代码的Python等价实现
当然有对应的Python实现,你可以通过open函数结合struct模块实现完全匹配的功能(struct模块专门用于处理C风格二进制数据,完美对应MATLAB的fread操作):
等价Python代码
import struct filename = "你的目标文件路径.bin" # 打开文件('rb'为二进制只读模式,通过struct前缀指定小端字节序对应MATLAB的'ieee-le') with open(filename, 'rb') as f: # 读取2个字符,对应MATLAB的fread(fid,2,'char') tmp = struct.unpack('<2c', f.read(2)) # 读取无符号短整型行数,对应ushort类型+小端字节序 rows = struct.unpack('<H', f.read(2))[0] # 读取无符号短整型列数 cols = struct.unpack('<H', f.read(2))[0]
关键对应说明
- MATLAB中
fopen(..., 'ieee-le')指定的小端字节序,在Python的struct模块中用前缀<表示 - MATLAB的
char类型对应struct中的c标识符,读取2个字符就用<2c - MATLAB的
ushort(无符号16位整数)对应struct中的H标识符,unpack返回元组,取第一个元素即可得到单个数值
内容的提问来源于stack exchange,提问作者SerTet
相关产品推荐
相关产品推荐

