Python 操作.mat文件的办法还挺多,但用scipy.io来读写是比较顺手的。它支持MATLAB的老版本和新版格式,直接存、直接读,连格式转换都不用操心,实用性蛮高的。

数据,比如numpy数组,直接打包成dict,用scio.savemat就能保存成.mat文件。加载的时候用scio.loadmat就能恢复成原样,整个流程就两三行代码,适合快速实验数据或者模型中间结果。

代码也清爽,像这样:

# -*- coding: utf-8 -*-
import numpy as np
import scipy.io as scio

data = np.array([1, 2, 3]) data2 = np.array([4, 5, 6])

# 保存为 mat 文件,注意是 dict 格式 scio.savemat('sample.mat', {'var_name': data})

# 加载 mat 文件 loaded = scio.loadmat('sample.mat') print(loaded['var_name'])

唯一要注意的是变量得用dict包一层,而且MATLAB那边读进去时变量名会保留原样。如果你喜欢变量名简洁点,命名时多注意就好。

如果你还想深入了解,可以看看这些:

如果你经常和Matlab交互数据,推荐把这段代码收进工具库里,真挺省事的。