首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >无法使用scipy.io或hdf5storage将mat文件加载到python中

无法使用scipy.io或hdf5storage将mat文件加载到python中
EN

Stack Overflow用户
提问于 2018-03-01 04:30:43
回答 1查看 1.3K关注 0票数 0

我尝试了几种方法将我的.mat文件加载到python中。我最终希望mat文件中的结构是一个numpy数组。我不确定如何最好地发布这个问题,因为我认为我可能需要上传我的.mat文件,因为似乎有一个问题,因为我正在尝试的步骤似乎对每个人都有效。

首先,我尝试了:

代码语言:javascript
复制
 import scipy.io as sio
 mat_contents = sio.loadmat('filename.mat')

它给出了与我安装hdf5storage和h5py时相同的错误消息(如下所示)。我有matlab版本9.3。和python 3.5.3。

这也给出了相同的错误消息,如下所示:

代码语言:javascript
复制
  import hdf5storage
  mat = hdf5storage.loadmat('filename.mat')

这两次尝试的错误都是:

代码语言:javascript
复制
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/u1/usr/.conda/envs/mypython/lib/python3.5/site-packages/hdf5storage/__init__.py", line 1801, in loadmat
    **keywords)
  File "/u1/usr/.conda/envs/mypython/lib/python3.5/site-packages/scipy/io/matlab/mio.py", line 135, in loadmat
    MR = mat_reader_factory(file_name, appendmat, **kwargs)
  File "/u1/usr/.conda/envs/mypython/lib/python3.5/site-packages/scipy/io/matlab/mio.py", line 59, in mat_reader_factory
    mjv, mnv = get_matfile_version(byte_stream)
  File "/u1/usr/.conda/envs/mypython/lib/python3.5/site-packages/scipy/io/matlab/miobase.py", line 235, in get_matfile_version
    maj_ind = int(tst_str[2] == b'I'[0])
IndexError: index out of range
>>> 

我的.mat文件包含一个1x1结构,它有几个不同大小的字段。我主要是一个python人,我只是使用matlab来输出我打算用python分析的文件。

EN

回答 1

Stack Overflow用户

发布于 2018-03-01 05:56:51

@hpaulj谢谢,你的评论让我重新加载了文件,因为我认为它不知何故被损坏了。我不能追踪它发生了什么,但这个问题的解决方案是检查文件。上面问题中列出的步骤是正确的。(我是Stackoverflow的新手,我很确定你不能接受评论作为回答,所以希望你能在这里获得信任,因为我标记了你的名字?)

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49038022

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档