matlab - 使用 scipy.io 加载 .mat 文件时出错(ValueError : Mat 4 mopt wrong format)

标签 matlab scipy h5py

我目前正在尝试使用 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/

相关文章:

c++ - 将 Matlab 代码转换为静态 C++ 库

python - 堆叠稀疏和密集矩阵

python - 无法在Python中创建HDF5数据集的引用

python h5py文件读取 "OSError: Unable to open file (bad superblock version number)"

mysql - 安装mym以使用matlab连接mysql

matlab - 如何在 MATLAB 上查找图像的雾度?

python - scipy - 在二维维度中捕获分子的晶格构造

numpy - 转换率测量

python - 如何从文件中提取非常大的 HDF5 数据集并写入另一个文件?

matlab - 使用函数元素创建符号矩阵