微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

MATLAB struct 转化为 python

如何解决MATLAB struct 转化为 python

我有一个 .mat 文件,其结构为 1x43249,有 6 个字段。第一列标记为“A”,每个单元格都是一个大小不同的方阵(即 17x17、18x18 等)。关键是,如何将 matlab 结构转换为可用的 python 数据?没有使用 matlab.engine,我只有 pandas、numpy 和 scipy.io。我可以使用 loadmat 导入数据。我最终想要获取这些数据,并且 将其导入 tensorflow。

from scipy.io import loadmat
import tensorflow as tf

data = loadmat('.../template1-lib5-eqns-CR-RESULTS-SET1-FINAL.mat')

nz = data['Graphs']['nz']
A = data['Graphs']['A']
print(nz[:,1])
print(A[:,1])

Graphs 是结构,nz 是一列,单元格 1 应该返回数字 6,但我得到的是 [array([[6]],dtype=uint8)]

打印 A 会给我:

[array([[0,1,0],[0,1],[1,0]],dtype=uint8)]

如果您需要更多信息,请告诉我。谢谢。

解决方法

我所要做的就是将所有内容上传到 Pandas 数据框中。

raw_data = loadmat(path,squeeze_me=True)
data = raw_data['Graphs']
graph_labels = pd.DataFrame()
graph_labels['perf'] = raw_data['Objective'][0:1000]
graph_labels['np'] = data['np'][0:1000]

这完成了工作,并使 matlab 中的所有内容都可用。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。