无法运行用scipy读取MAT文件的pykalma示例代码

时间:2017-07-19 03:42:07

标签: scipy

下面是pykalman示例用于加载matlab文件robot.mat的代码行。但是,它会抛出错误消息 ValueError:未知的mat文件类型,版本100,110。

我是用Python阅读matlab文件的新手。任何人都可以帮助我准确理解它期待的版本以及如何解决这个问题吗?

data = io.loadmat(join(module_path, 'data', 'robot.mat'))


Traceback (most recent call last):
File "C:\ProgramData\Anaconda2\lib\site-
packages\IPython\core\interactiveshell.py", line 2881, in run_code
exec(code_obj, self.user_global_ns, self.user_ns)
File "<ipython-input-4-0439d709929f>", line 1, in <module>
data = load_robot()
File "C:\ProgramData\Anaconda2\lib\site-packages\pykalman\datasets\base.py", 
line 45, in load_robot
data = io.loadmat(join(module_path, 'data', 'robot.mat'))
File "C:\ProgramData\Anaconda2\lib\site-packages\scipy\io\matlab\mio.py", 
line 135, in loadmat
MR = mat_reader_factory(file_name, appendmat, **kwargs)
File "C:\ProgramData\Anaconda2\lib\site-packages\scipy\io\matlab\mio.py", 
line 59, in mat_reader_factory
mjv, mnv = get_matfile_version(byte_stream)
File "C:\ProgramData\Anaconda2\lib\site-
packages\scipy\io\matlab\miobase.py", 
line 241, in get_matfile_version
raise ValueError('Unknown mat file type, version %s, %s' % ret)

ValueError: Unknown mat file type, version 100, 110

1 个答案:

答案 0 :(得分:2)

我在这里猜测(并在hpaulj的良好概述中增加一个想法):

首先我手动检查了文件,在编辑器中打开时显示为:

MATLAB 5.0 MAT-file, Platform: MACI64, Created on: Tue Jun 26 00:59:04 2012
...

因此scipy应该没有问题(如果mat文件实际上是跟着这个“标题”)。

现在看来,该项目存在一些与最相关的问题有一些未解决的问题:

所以看起来这个数据集没有自动pip-install ,这看起来像你的问题,应该很容易处理(手动获取数据!)。它也与hpaulj想知道这个奇怪的错误兼容(如果没有更好的错误处理可能会争辩)。