python导入mat文件_如何在Python中使用loadmat访问从.mat文件导入的结构中的字段?...

1586010002-jmsa.png

Following this question which asks (and answers) how to read .mat files that were created in Matlab using Scipy, I want to know how to access the fields in the imported structs.

I have a file in Matlab from which I can import a struct:

>> load bla % imports a struct called G

>> G

G =

Inp: [40x40x2016 uint8]

Tgt: [8x2016 double]

Ltr: [1x2016 double]

Relevant: [1 2 3 4 5 6 7 8]

Now I want to do the same in Python:

x = scipy.io.loadmat('bla.mat')

>>> x

{'__version__': '1.0', '__header__': 'MATLAB 5.0 MAT-file, Platform: PCWIN, Created on: Wed Jun 07 21:17:24 2006', 'G': array([[]], dtype=object), '__globals__': []}

>>> x['G']

array([[]], dtype=object)

>>> G = x['G']

>>> G

array([[]], dtype=object)

The question is, how can I access the members of the struct G: Inp, Tgt, Ltr and Relevant, the way I can in Matlab?

解决方案

First, I'd recommend to upgrade to Scipy svn if possible - there has been active development of the matlab io with some really dramatic speed ups recently.

Also as mentioned it might be worth trying with struct_as_record=True. But otherwise you should be able to get it out by playing around interactively.

Your G is an array of mio struct objects - you can check G.shape for example. In this case I think G = x['G'][0,0] should give the object you want. Then you should be able to access G.Inp etc.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值