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
交互数据,推荐把这段代码收进工具库里,真挺省事的。