我正在*.mat
使用 Python 2.6 读取文件(不确定使用的 Matlab 版本),scipy.io.loadmat
由于数组尺寸,我无法使用读取的数组。似乎无论我尝试访问这些元素,我最终都会得到一个仍然有多个元素的 0-d 数组。我已经看过this和this,但仍然不知道如何使用这些元素。
假设我读了一个数组,
data = scipy.io.loadmat(filename,squeeze_me=False)
....
b = data[0][0]['somevar']
在此之后,我有
b= [[ array([[ 1.0884988 , 1.08116209, 1.07364911, 1.06662874, 1.06008637,
1.0530468 , 1.04619028, 1.03984295, 1.03342865, 1.02715746,
1.02114066, 1.01496634, 1.00904967, 1.00316573, 0.99803184,
0.99262961 ]])]]
现在,如果我尝试b.squeeze()
or b = b[0][0]
,我有
b= [[ 1.0884988 1.08116209 1.07364911 1.06662874 1.06008637
1.0530468 1.04619028 1.03984295 1.03342865 1.02715746
1.02114066 1.01496634 1.00904967 1.00316573 0.99803184
0.99262961]]
这是一个 0-d 数组,自然会出现错误
IndexError: 0-d arrays can't be indexed
或类似的东西,并且不能访问b
.
如何在loadmat
不生成 0-d 数组的情况下访问最初读取的数组元素,并且最好比使用多个[0]
索引更优雅?感谢您的任何帮助或建议。