You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python中是否有Matlab/Octave fwrite写入变量到二进制文件的等效命令?

Python中Matlab fwrite写入uint16二进制文件的等效实现

你所需的Matlab命令a = fwrite(myfile, uint16(x), "uint16");,在Python中有两种常用的等效实现方案:

  • 使用Python标准库struct模块,无需额外安装依赖,适合写入少量uint16数值的场景:
import struct

# 示例待写入数据
x = [100, 200, 65535]
# 以二进制写模式打开文件
with open("output.bin", "wb") as f:
    # <表示小端字节序,>表示大端字节序,H表示uint16类型,长度匹配x的元素数量
    f.write(struct.pack(f"<{len(x)}H", *x))

你可以根据Matlab默认的字节序调整<或>,保证两端字节序一致即可正常读取。

  • 使用numpy库,适合处理大规模数值数组的场景,操作逻辑和Matlab更贴近:
import numpy as np

# 构造uint16类型的数组
x = np.array([100, 200, 65535], dtype=np.uint16)
# 直接写入二进制文件
x.tofile("output.bin")

# 如需指定字节序可调整dtype:
# dtype="<u2" 表示小端uint16
# dtype=">u2" 表示大端uint16

该方法写入的二进制文件和Matlab的fwrite/fread完全兼容,只要两端指定的数据类型、字节序一致即可。


内容的提问来源于stack exchange,提问作者fpga

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.30 20:27:03