.mat文件
mat数据格式是Matlab的数据存储的标准格式。在Matlab中主要使用load()函数导入一个mat文件,使用save()函数保存一个mat文件。在python中,使用模块scipy.io的函数loadmat和savemat可以实现Python对mat数据的读写。
函数介绍
scipy.io.loadmat(file_name, mdict=None, appendmat=True, **kwargs)
scipy.io.savemat(file_name, mdict, appendmat=True, format='5', long_field_names=False, do_compression=False, oned_as='row')
savemat()
x = [1, 2, 3]
y = [[4, 5, 6], [44, 55, 66]]
z = [[[1, 2], [3, 4]], [[5, 6], [7, 8]]]
matFile = r'D:\Code\python\TouTiao\Numpy\mat\saveddata.mat'
sio.savemat(matFile, {'x': x, 'y': y, 'z': z}) # 注意是以字典的形式保存
loadmat()
dataFile = r'D:\Code\python\TouTiao\Numpy\mat\saveddata.mat'
data = sio.loadmat(dataFile)
print(type(data)) # <class 'dict'>, 读取出来的data是字典格式,可以通过函数type(data)查看
print(data['x']) # [[1 2 3]] 一维变为二维,注意,1-D numpy arrays会因savemat中参数oned_as的赋值有相应变化
print(data['y'])
# [[ 4 5 6]
# [44 55 66]]
print(data['z'])
# [[[1 2]
# [3 4]]
# [[5 6]
# [7 8]]]
注意事项
(1)矩阵用Python读取得到的是array的内容
(2)1-D numpy arrays会因savemat中参数oned_as的赋值有相应变化。
(3)在使用MATLAB时注意数据的格式转换
参考1:http://blog.csdn.net/rumswell/article/details/8545087
参考2:https://blog.csdn.net/google19890102/article/details/45672305