linux下,python如何读取和保存matlab的.mat文件的方法

来源:互联网 发布:erp制作软件 编辑:程序博客网 时间:2024/06/05 05:03

最近在linux下面做一个DL的项目,需要要用到python语言读取matlab保存的.mat文件,有一下两种情况:

1、如果你的matlab的版本比较旧,保存的.mat 格式为‘-v7.3’以前的版本,可以采用:scipy.io即可,方法如下:

      假如有一个ss_box.mat,格式如下:我们想要读取其中的box的内容,

                                                                box: {1x29992 cell}
                                                                name: {1x29992 cell}

          代码:

          import scipy.io as sio

          boxes=sio.loadmat(’ss_box.mat‘)['box'].ravel()

          这样boxes就是一个list,可以采用boxes[i]获取每个array的内容了,boxes.shape[0]为cell的个数

2、如果你的matlab的版本比较新,保存的.mat格式为‘-v7.3’的版本,由于scipy.io不支持,所以要采用hdf5,方法如下:

       代码:

      import h5py

      import numpy as np

      file=h5py.File(‘ss_box.mat’,'r')
      raw_data =[file[element[0]][:] for element in file['box']]

       这样raw_data是一个list,len(raw_data)获取cell的个数;但是有一个问题就是每个cell的被转置了一个下,因此需       要转回来:box=np.transpose(raw_data[i])








          

0 0
原创粉丝点击