在python中访问包含matlab类的.mat文件

2024-04-23

我有一个从 matlab 2012b 生成的 .mat 文件。它包含一个带有用户定义的 matlab 类的变量。

在 python 3.3 中使用 scipy.io.loadmat 加载文件时,我得到以下信息:

mat=scipy.io.loadmat('D:\test.mat')
mat
{'__header__': b'MATLAB 5.0 MAT-file, Platform: PCWIN64, Created on: Fri Feb 22 15:26:28 2013', '__function_workspace__': array([[ 0,  1, 73, ...,  0,  0,  0]], dtype=uint8), '__globals__': [], '__version__': '1.0', 'None': MatlabOpaque([ (b'futureDS', b'MCOS', b'cStream', [[3707764736], [2], [1], [1], [1], [1]])], 
      dtype=[('s0', 'O'), ('s1', 'O'), ('s2', 'O'), ('arr', 'O')])}

我希望访问“cStream”类型的“futureDS”对象,但似乎无法使用 mat['None'] 来执行此操作。调用 mat['None'] 简单结果:

MatlabOpaque([ (b'futureDS', b'MCOS', b'cStream', [[3707764736], [2], [1], [1], [1], [1]])], 
      dtype=[('s0', 'O'), ('s1', 'O'), ('s2', 'O'), ('arr', 'O')])

我被困在这里了。我是 python 新手,试图从 matlab 移植我的旧工作。任何帮助,将不胜感激。

谢谢。


不幸的是,SciPy 不支持包含新式类对象的 mat 文件(那些用classdef),据我所知,任何第三方 mat 文件阅读器也没有。那__function_workspace__返回的元素mat字典以某种未记录且尚未进行逆向工程的方式包含您想要的信息。

最简单的解决方案是将自定义类转换为基本类struct将对象保存到磁盘之前先在 Matlab 中进行这些操作。这可以通过简单地调用来实现(尽管有警告)struct(futureDS)。它将所有公共和私有属性公开为普通字段,任何有价值的第三方读者都可以阅读。

(更技术地说,Matlab 使用 Matlab 数组类型 id 17 保存这些对象;官方文档 (PDF) http://www.mathworks.com/help/pdf_doc/matlab/matfile_format.pdf只枚举 15 以内的类型)。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在python中访问包含matlab类的.mat文件 的相关文章

  • mod_wsgi 下的 psp(python 服务器页面)代码?

    有没有办法在 apache mod wsgi 下运行 psp python 服务器页面 代码 虽然我们正在转向基于 wsgi 的新框架 但我们仍然有一些用 psp 编写的遗留代码 这些代码在 mod python 下运行 我们希望能够在托管
  • 使用SchemDraw库自动保存图像

    我想在Python中使用这个库来生成电气图 https cdelker bitbucket io SchemDraw https cdelker bitbucket io SchemDraw 我想在服务器中运行这段代码 这个想法是生成图像
  • 如何建立数据流挖掘的滑动窗口模型?

    我们遇到的情况是 流 来自传感器的数据或服务器上的点击流数据 采用滑动窗口算法 我们必须将最后 例如 500 个数据样本存储在内存中 然后 这些样本用于创建直方图 聚合并捕获有关输入数据流中异常的信息 请告诉我如何制作这样的滑动窗 如果您询
  • 在 Python 3.5 64 位上通过 pip 安装 OpenCV

    我尝试安装 OpenCV 但找不到任何合适的 pip 软件包 我决定上网查找有关如何安装它的官方文档 并发现this https opencv python tutroals readthedocs io en latest py tuto
  • 如何在 Linux 上调用 Python 中的内联机器代码?

    我正在尝试从 Linux 上的纯 Python 代码调用内联机器代码 为此 我将代码嵌入到字节文字中 code b x55 x89 xe5 x5d xc3 然后打电话mprotect http www kernel org doc man
  • pyqt5调用url时处于无响应状态

    我刚刚在 pyqt 中实现了登录 但在调用 url 和获取响应之间 qt 窗口显示无响应状态 谁能建议我如何避免不响应状态 code class Login QDialog def init self height width parent
  • Haskell 中的异构多态性(正确方法)

    让一个模块来抽象Area操作 错误的定义 class Area someShapeType where area someShapeType gt Float module utilities sumAreas Area someShape
  • Python 中意外的缩进错误[重复]

    这个问题在这里已经有答案了 我有一段简单的代码 我不明白我的错误来自哪里 解析器在第 5 行 if 语句 上用意外的缩进向我咆哮 有人看到这里的问题吗 我不 def gen fibs a b 0 1 while True a b b a b
  • 单击按钮时执行 python 脚本

    我有一个带有一个按钮的 HTML 页面 当我们单击该按钮时 我需要执行一个 python 脚本 并返回到包含结果的同一 HTML 页面 所以我需要对返回值进行一些验证并执行一些操作 这是我的代码 HTML
  • scikit-learn - 具有置信区间的 ROC 曲线

    我可以使用 ROC 曲线scikit learn with fpr tpr thresholds metrics roc curve y true y pred pos label 1 where y true是基于我的黄金标准的值列表 即
  • 用python计算网页大小

    我将如何使用 Python 计算网页 url 的大小 我尝试了 urllib2 并获取内容长度标头 但它不存在 import urllib2 url http www google com r urllib2 urlopen url Not
  • Apache2 mod_wsgi 403 禁止错误

    我已经正确配置了它 但后来我决定重新安装我的 Debian 顺便从 wheezy 切换到 jessie 版本 问题是这样的 我有一个 python mod wsgi 应用程序 mnt doc Python www index py ls l
  • dataframe KeyError,尽管它存在

    鉴于数据 rows x 1 y 2 z 3 x 2 y 2 z 3 如果我尝试构建这样的数据框 frame pd DataFrame from records rows index x 效果很好 然而 这 frame pd DataFram
  • 如何解析代码(Python)?

    我需要解析一些特殊的数据结构 它们采用某种类似 C 的格式 大致如下所示 Group GroupName C Style comment Group AnotherGroupName Entry some variables 0 3 141
  • 抑制来自 python pandas 描述的名称 dtype

    可以说我有 r pd DataFrame A 1 B pd Series 1 index list range 4 dtype float32 And r B describe mean std min max 给出输出 mean 1 0
  • tweepy 计数限制为 200?

    我目前正在尝试检索一些拥有大量关注者的大帐户的关注者 我正在使用 Tweepy 和这段代码 带光标 follower cursors tweepy Cursor api followers id id var count 5000 for
  • Python:使用 FOR 循环插入字典

    我已经在论坛中进行了搜索 但不明白是否可以使用以下构造将新条目插入到我的 Python 字典中 而不将其转换为列表 for x in range 3 pupils dictionary new key input Enter new key
  • 将 2D 数组中的每一列与另一个 2D 数组中的每一列相乘

    我有两个 Numpy 数组x有形状 m i and y有形状 m j 所以行数是相同的 我想将每一列相乘x每一列y逐元素 使结果具有形状 m i j Example import numpy as np np random seed 1 x
  • 如何使用 Google Drive API 通过服务帐户访问域中的共享文件?

    我一直在尝试从 Python 3 7 脚本访问有关 Google Shared Drive 文件的一些简单信息 上次修改共享云端硬盘上的 Google 表格文件的时间 我创建了一个服务帐户在 GCP Drive API 菜单中 它可以通过
  • 将下载的字体添加到 Tkinter

    我想下载一个开源字体并在我的 Python Tkinter 程序中使用它 如何告诉 Tkinter 从目录导入字体或将字体放在与程序相同的文件夹中 Note 我已经寻找答案一段时间了 甚至阅读了 Tkinter 的 API 参考 了解我能找

随机推荐

  • Nginx 对 cms 后端的重写规则

    我需要在 nginx 服务器中制定 url 重写规则 服务器块 就像我之前的 apache 服务器一样 这是 htaccess 中的代码 我需要将其实现 转换 到我现有的代码中 RewriteRule A Za z0 9 A Za z0 9
  • 如何通过 sql plus 从命令行发出单个命令?

    使用 SQL Plus 您可以运行script从命令行使用 运算符 如下所示 c gt sqlplus username password databasename c my script sql 但是是否可以只运行一个单一命令使用类似的语
  • 从色调 0 到 360 的 SVG 线性渐变

    source elv1s ru http elv1s ru files svg gradient hue png 做这样的渐变的正确方法是什么 我试过this SVG http elv1s ru files svg gradient hue
  • 如何使用表达式树安全访问可为空对象的路径?

    当我将反序列化的 XML 结果放入 xsd 生成的对象树中 并希望使用该树 a b c d e f 内的某些深层对象时 如果该查询路径上的任何节点丢失 它将给出异常 if a b c d e f null Console Write ok
  • 使用 inno setup 安装时检查可用端口

    我正在尝试在 inno setup 中创建以下功能 用户被要求输入他们希望我的应用程序进行通信的端口 一旦他们进入端口 他们就可以点击检查按钮 此检查按钮将运行一些代码来查看安装计算机上的端口是否可用 到目前为止 我可以为用户创建输入框来输
  • VectorDrawable 导致 NumberFormatException

    我正在使用 Android Lollipop 的全新且炫酷的矢量绘图 但对于某些 SVG 文件 当使用该可绘制对象时 我总是在运行时遇到 NumberFormatException 这是我的堆栈跟踪 android view Inflate
  • 无法从干预/图像中的给定 url 进行初始化": "^2.3

    我想保存来自 google plus 的图像 如下网址所示 它在本地计算机上也能正常工作 但上传到 ubuntu14 时出现以下错误 image Image make https lh6 googleusercontent com Gcp
  • 如何禁用鼻子测试的覆盖率报告

    希望有一个简单的 python djangonose测试问题 虽然我找不到答案nose的文档 运行测试后如何停止显示覆盖率报告 manage py test 我的覆盖率报告有一个巨大的问题 迫使我向后滚动几十行以获取失败测试的回溯 这确实中
  • python中无替换的加权随机样本

    我需要获得一个k sized从总体中进行无替换的样本 其中总体中的每个成员都有相关的权重 W Numpy s 随机选择如果没有更换 则不会执行此任务 并且随机抽样不会采用加权输入 目前 这就是我正在使用的 P np zeros 1 Pare
  • Node.js 承诺、异步或只是回调

    你能向初学者解释一下 承诺 异步 和 回调 之间的区别吗 这些术语如何相互关联 这些是同一件事吗 不同的东西 我什么时候使用哪个 异步是启动计算并提供函数或注册处理程序的一般设计模式 该处理程序最终将在计算完成时使用计算结果进行调用 而不是
  • 图片格式未知

    我正在尝试使用 Net Core 2 2 将图像读取为 Base64 格式 并且它抛出 ArgumentException 图像格式未知 System Drawing Image FromFile 字符串文件名 bool useEmbedd
  • 在哪里可以找到列出控件中所有状态的属性?

    我正在查看 winrt 项目的模板 它的后退按钮具有以下样式
  • 如何将基于Reactjs的PWA更新到新版本?

    我正在开发一个基于reactjs 的应用程序 我也做了service worker对其进行设置 后add to home screen 应用程序从不检查服务器是否有新更新 我也尝试过 window location reload true
  • f-score:ValueError:分类指标无法处理多标签指标和连续多输出目标的混合

    我正在尝试计算模型所做的预测的微 F 测量 我使用带有 Keras 和 Tensorflow 的 word2vec 矢量来训练模型 我使用 scikit 库来计算 mirco F 度量 但该函数会抛出此消息 ValueError Class
  • Delphi 2007 中的 AsyncCall

    我基本上想要的是开始异步调用 http andy jgknet de blog bugfix units asynccalls 29 asynchronous function calls 并继续加载我的代码 我的接口部分消耗了大量时间 6
  • DialogflowApp AskForUpdatePermission 不起作用

    1 askForUpdatePermission 未找到意图 我遵循了更新示例Github dialogflow updates nodejs https github com actions on google dialogflow up
  • python ctypes - 传递 numpy 数组 - 奇数输出

    我正在使用 ctypes 并将 ndarray 传递给 c 函数 它给了我一个奇怪的输出行为 这是一些代码 C 功能 int foo int foo int N for int i 0 i
  • 使用 gmail 在 R 中通过电子邮件发送附件

    我希望使用 gmail 在 R 中发送一封带有附件的电子邮件 我发现 sendmailR 不能与 gmail 一起使用 因为它需要身份验证 我无法让它与 gmail 一起使用 所以我认为这是真的 除非有人告诉我我错了 在这种情况下我将发布
  • 通过ajax将数据插入mysql数据库

    通讯
  • 在python中访问包含matlab类的.mat文件

    我有一个从 matlab 2012b 生成的 mat 文件 它包含一个带有用户定义的 matlab 类的变量 在 python 3 3 中使用 scipy io loadmat 加载文件时 我得到以下信息 mat scipy io load