簡體   English   中英

無法使用scipy.io或hdf5storage將Mat文件加載到python中

[英]cannot load mat file into python with scipy.io or hdf5storage

我嘗試了幾種方法將.mat文件加載到python中。 我最終希望mat文件中的結構為numpy數組。 我不確定如何最好地發布此問題,因為我認為我可能需要上傳我的.mat文件,因為這似乎有問題,因為我嘗試的步驟似乎對其他所有人都有效。

首先,我嘗試:

 import scipy.io as sio
 mat_contents = sio.loadmat('filename.mat')

與安裝hdf5storage和h5py時出現的錯誤信息相同(如下所列)。 我有9.3版的Matlab。 和python 3.5.3。

這也給出了相同的錯誤消息,如下所示:

  import hdf5storage
  mat = hdf5storage.loadmat('filename.mat')

這兩個嘗試的錯誤是:

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中分析的文件。

@hpaulj謝謝,您的留言使我重新加載了文件,因為我認為它已損壞。 我無法跟蹤發生了什么,但是解決此問題的方法是檢查文件。 問題中上面列出的步驟是正確的。 (我是Stackoverflow的新手,我很確定您不能接受評論作為答案,因此希望您會在這里獲得榮譽,因為我標記了您的名字?)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM