2016-06-25 40 views
2

我目前正試圖使用​​SciPy的加載Python中的.MAT文件,下面的代碼位:錯誤加載與scipy.io .MAT文件時(ValueError異常:墊4 MOPT格式錯誤)

from scipy import io as sio 
data= "file.mat" 
output= sio.loadmat(data) 
運行命令

然而,當我得到的錯誤:

ValueError: Mat 4 mopt wrong format, byteswapping problem? 

這個錯誤是什麼消息呢?我試圖加載的文件有問題嗎? 我是新手,當談到編程,所以任何建議將不勝感激:))如果有更好的方式來加載Python中的.mat文件,我也願意聽到這些。提前致謝!

+0

@hpaulj感謝您的回覆,我發現這些文件是7.3 MAT文件,HDF5文件類型,所以它們不受SciPy支持,可能會嘗試使用h5py代替 –

+0

我將添加幾個標籤,因此更容易找到。隨着越來越多的7.3變得越來越普遍,我們看到更多這種錯誤 – hpaulj

回答

1

我以前從未見過這個錯誤,但它是由線113在生產SciPy的/ SciPy的/ IO/MATLAB/mio4.py

def read_header(self): 
    ''' Read and return header for variable ''' 
    data = read_dtype(self.mat_stream, self.dtypes['header']) 
    name = self.mat_stream.read(int(data['namlen'])).strip(b'\x00') 
    if data['mopt'] < 0 or data['mopt'] > 5000: 
     raise ValueError('Mat 4 mopt wrong format, byteswapping problem?') 
    ... 

通常loadmat是正確的文件加載器,最起碼在支持的類型:

v4 (Level 1.0), v6 and v7 to 7.2 matfiles are supported.

你知道這個文件是如何保存在MATLAB中的任何東西嗎?任何格式規格如這些?