【发布时间】:2019-12-03 16:03:54
【问题描述】:
我在将.mat 文件加载到 Python 中时遇到了一些问题。它是一个结构化数组,有许多主标题和副标题等。使用两个不同的模块导入文件时出现两个错误;
res = scipy.io.loadmat('myfile.mat')
给出以下内容:
return self._matrix_reader.array_from_header(header, process)
文件“mio5_utils.pyx”,第 675 行,在 scipy.io.matlab.mio5_utils.VarReader5.array_from_header
文件“mio5_utils.pyx”,第 723 行,在 scipy.io.matlab.mio5_utils.VarReader5.array_from_header
文件“mio5_utils.pyx”,第 978 行,在 scipy.io.matlab.mio5_utils.VarReader5.read_struct
文件“mio5_utils.pyx”,第 673 行,在 scipy.io.matlab.mio5_utils.VarReader5.read_mi_matrix
文件“mio5_utils.pyx”,第 723 行,在 scipy.io.matlab.mio5_utils.VarReader5.array_from_header
文件“mio5_utils.pyx”,第 978 行,在 scipy.io.matlab.mio5_utils.VarReader5.read_struct
文件“mio5_utils.pyx”,第 673 行,在 scipy.io.matlab.mio5_utils.VarReader5.read_mi_matrix
文件“mio5_utils.pyx”,第 721 行,在 scipy.io.matlab.mio5_utils.VarReader5.array_from_header
文件“mio5_utils.pyx”,第 894 行,在 scipy.io.matlab.mio5_utils.VarReader5.read_cells
文件“mio5_utils.pyx”,第 673 行,在 scipy.io.matlab.mio5_utils.VarReader5.read_mi_matrix
文件“mio5_utils.pyx”,第 721 行,在 scipy.io.matlab.mio5_utils.VarReader5.array_from_header
文件“mio5_utils.pyx”,第 894 行,在 scipy.io.matlab.mio5_utils.VarReader5.read_cells
文件“mio5_utils.pyx”,第 673 行,在 scipy.io.matlab.mio5_utils.VarReader5.read_mi_matrix
文件“mio5_utils.pyx”,第 717 行,在 scipy.io.matlab.mio5_utils.VarReader5.array_from_header
文件“mio5_utils.pyx”,第 879 行,在 scipy.io.matlab.mio5_utils.VarReader5.read_char
TypeError: 缓冲区对于请求的数组来说太小
当使用mat4py 模块时,我得到了
ParseError:意外的字段名称长度:48
关于解决此类问题的任何想法
【问题讨论】:
-
是否使用 -v7.3 标志保存大数据?如果是这样,您无法使用 scipy 导入它
-
我不确定它是否有 7.3 标志,但它是一个包含大量大数据的结构数组
-
PS,是否有替代模块可用于将其导入 python
-
没有简单的解决方案。您可以将拆分的数据保存为更小的部分,将其保存为较大但不在结构中,或者从 python 调用 Matlab 引擎。
-
感谢您的建议,唯一的问题是我不想使用 Matlab 引擎,因为我希望能够将其发送给没有许可证的人。
标签: python matlab file file-conversion