【问题标题】:cannot import matlab file to python code无法将matlab文件导入python代码
【发布时间】:2016-01-22 06:38:23
【问题描述】:

我正在进行一个机器学习项目。在 matlab R2015a 中对数据进行训练,得到一个文件 abc.m 。我从 matlab 文件中得到预期的结果,同时从 matlab 命令窗口提供输入。我在 pyqt5 中开发了接口,并在 python 中获取了文件。想将 .m 文件导入 python 使用。

使用 python 3.5 在我的计算机上安装 Anaconda 2.4.1。 在 Windows 8.1 上工作

谁能帮忙? 完全坚持这个项目。

我的代码如下:

import scipy.io as sio
import numpy as np

from sklearn import preprocessing

ab = sio.loadmat('latest.m')
......

但我收到以下错误:

Traceback (most recent call last):
File "test.py",line 8,in <module>
 ab = sio.loadmat('latest.m')
 File "C:\anaconda\Lib\site-packages\scipy\io\matlab\mio.py",line 58,in mat_reader_factory
 mjv,mnv = get_matfile_version(byte_stream)
 File "C:\anaconda\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 111,114

【问题讨论】:

  • 这会更有帮助,如果你粘贴你尝试过的代码 sn-p 并抛出错误。
  • 您的文件包括什么?脚本?一个函数?你的工作区?
  • 我的 matlab 文件是 'latest.m' 。 python 代码: import scipy.io as sio import numpy as np from sklearn import preprocessing ab = sio.loadmat('latest.m') ..... .....
  • 按上面的“编辑”(问题文本下方的链接)并将代码放入问题中。您应该将其格式化为代码。如果您不知道如何操作,请参阅 stackoverflow.com/help/formatting 。在 cmets 中发布的代码几乎不可读,应该在您的问题中添加的其他信息不应发布在 cmets 中。
  • 首先从 matlab 中检查是否可以加载文件 (m = matfile(latest.m))。也许您不是在尝试加载有效的 mat 文件,而是代码(.m 扩展名,请参阅stackoverflow.com/questions/3947549/…

标签: python matlab


【解决方案1】:

loadmat 加载一个 MATLAB 数据文件,例如一些代码的结果。 MATLAB 数据文件具有 .mat 扩展名。

加载.m 文件意味着加载一堆没有MATLAB 解释器就没有任何意义的文本!你想要的是加载一个.mat 文件,一个包含矩阵、字符串或保存在那里的任何内容的文件。

编辑我刚刚看到@valtuarte 指向What is the difference between .m and .mat files in MATLAB 的链接。检查一下!

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-09-26
    • 1970-01-01
    • 2010-10-17
    • 1970-01-01
    • 2014-10-31
    • 2023-02-08
    • 2013-12-07
    相关资源
    最近更新 更多