我用scipy.io读了一个.mat文件:
data = scipy.io.loadmat(etc.)
该函数返回一个字典,我的Matlab结构数组存储在Numpy结构化数组中。到现在为止还挺好。我的一个字段叫做repet1_F3
,应该包含一个浮点数向量。我使用以下方法访问了矢量:
repet1_F3= data['repet1_F3']
repet1_F3
有一个奇怪的结构,我无法操纵:
>>> repet1_F3
array(array([ 0.48856978, 0.74278461, 2.73300925, 2.72642893, 2.73684854, 2.74516561, 2.69143553]), dtype=object)
我做错了吗?我怎么能把这个对象转换成标准的numpy数组?
答案 0 :(得分:1)
loadmat
倾向于在numpy
对象数组中包装MATLAB结构。
array(array([ 0.48856978, 0.74278461,
2.73300925, 2.72642893, 2.73684854, 2.74516561, 2.69143553]), dtype=object)
看起来像是dtype对象的1个元素数组;该元素本身就是一个浮点数组。外部数组可能具有形状()
(0d)。
尝试repet1_F3.item()
或repet1_F3([])
。其中一个应该给内部数组。
你知道包含这样的数字的MATLAB结构吗?
更正 - 应为repet1_F3[()]
。