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

最近在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])








          

发布了34 篇原创文章 · 获赞 10 · 访问量 16万+
展开阅读全文

没有更多推荐了,返回首页

©️2019 CSDN 皮肤主题: 大白 设计师: CSDN官方博客

分享到微信朋友圈

×

扫一扫,手机浏览