2016-11-11 71 views
-2

我有以下问题:我有一个结构为4x17x4和5个字段的matlab数据库(.mat)。里面的字段是“field_a”,“field_b”,“field_c”,“field_d”,“field_e”。在matlab中很容易从中提取元素,但我需要在python中找到解决方案。在matlab中,我这样做:访问多维(3D和4D)数组中的元素

data = {database(:,1,1).a} 

如何在python中提取“数据”? 什么我已经做了,现在在Python加载MATLAB数据库:

fnameSISO["States"] = sio.loadmat('databaseSISO_states') 

但是,当我尝试提取数据它doesn't工作:

data = fnameSISO["States"][:,1,1] 

此外,我试图加载与数据库:

fnameSISO["Loo"] = np.asarray(sio.loadmat('databaseSISO_states')) 

它也没有工作。

在这种情况下我该怎么办?如果我将数据库保存在json文件中,我将能够提取我需要的元素?

预先感谢您。

+0

请问您可以添加一些可以测试代码的数据吗? – sobek

+0

嗨,感谢您的关注,但我无法真正分享我正在使用的实际数据。我会考虑一个解决方法:) –

+0

你说这是行不通的,那是什么意思?是否有错误消息,你得到错误的数据?你太过于含糊...... – sobek

回答

1

我找到了解决方案。编写语法时我犯了一个错误。 解决方案:

data = fname["States"]["database"]["field_a"][:,1,1]