采用 Python 读取 matlab 中 .mat文件的方法有很多,中外文的论坛上都不少,相关博文
详址:http://blog.csdn.net/u013630349/article/details/47090299
但是,在读取matlab文件的时候,往往不是一层 .mat 就足以解决问题的,.mat 文件中可能是存放的 cell(100*200) 数据, cell(100*200)数据中又分为多个 cell 。那么,如何处理这样的数据结构,实现Python对matlab这一类型数据的读取呢,现对该问题,详解如下:
【问题一】
matlab之中有FEAT_Name.mat文件,该文件的形式如下
FEAT_Name.mat <1x10 cell>——>each element is <600x5755 double>
先要实现对FEAT_Name元组的首个矩阵的读取操作,代码实现如下
myfile=h5py.File('F:\\wfpdm\\20150702_2105\\FEAT_Name.mat','r')
data = [myfile[element[0]][:] for element in myfile['FEAT_Name']]
print data[1].shape
Out: (5755,600)
解析
1)for element in myfile[‘FEAT_Name‘] 实现了对 myfile[‘FEAT_Name‘] 的 cell 的遍历;
2)myfile[element[0]]恰好可以理解为myfile[element],