Matlab 常用有两种格式文件来存储数据到本地,v7.3 files 和 非 v7.3 files. 其在 Python 中读取略有不同.

<h2>1. 非 matlab v7.3 files 读写</h2>

import scipy.io as sio
import numpy
# matFile 读取
matFile = 'matlabdata.mat'
datas = sio.loadmat(matFile)
# 加载 matFile 内的数据
# 假设 mat 内保存的变量为 matlabdata
matlabdata = datas['matlabdata']


# matFile 写入
save_matFile = 'save_matlabdata.mat'
save_matlabdata = np.array([1,2,3,4,5])
sio.savemat(save_matFile, {'array':save_matlabdata})

<h2>2. matlab v7.3 files 读取</h2>

如果 matlab 保存 data 时,采用的是 '-v7.3',scipy.io.loadmat函数加载数据会出现错误:

File "/usr/local/lib/python2.7/dist-packages/scipy/io/matlab/mio.py", line 64, in mat_reader_factory
    raise NotImplementedError('Please use HDF reader for matlab v7.3 files')
NotImplementedError: Please use HDF reader for matlab v7.3 files

可以采用:

import h5py
with h5py.File('matlabdata.mat', 'r') as f:
    f.keys() # matlabdata.mat 中的变量名

datas = h5py.File('matlabdata.mat')['matlabdata'].value
Last modification:October 9th, 2018 at 09:31 am