我目前正在尝试使用 scipy 和以下代码在 python 中加载 .mat 文件:
from scipy import io as sio
data= "file.mat"
output= sio.loadmat(data)
但是在运行命令时出现错误:
ValueError: Mat 4 mopt wrong format, byteswapping problem?
此错误消息是什么意思?我尝试加载的文件有问题吗? 在编程方面我是新手,所以任何建议将不胜感激 :) 如果有更好的方法在 python 中加载 .mat 文件,我也愿意听取这些建议。提前致谢!
最佳答案
我以前从未见过这个错误,但它是由 scipy/scipy/io/matlab/mio4.py 中的第 113 行产生的
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 中保存的吗?是否有诸如此类的格式规范?
关于matlab - 使用 scipy.io 加载 .mat 文件时出错(ValueError : Mat 4 mopt wrong format),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38024756/