无法将 .mat 文件读入 python
Can not read .mat file into python
我已经尝试了好几天,在我的 python 项目中寻找读取此文件的正确方法。这是一个普通的matlab数据结构文件。
https://drive.google.com/open?id=1E1w1eQn6pTcQ1lkhGMJzmB5ugtmaDPht
我很熟悉如何读取 h5 文件,这个 .mat 文件似乎就是这种情况,因为它不允许 scipy.loadmat 读取它。所以我用了 h5py.Read().
import h5py
f = h5py.File('./imgIdx.mat','r')
d = f['imgIdx/anno']
print(d[1000]) # accessing an arbitrary object
[<HDF5 object reference>]
这是我无法处理的对象
这应该是一个 m x 4 矩阵
其中 m >= 0
遵循文档中 object reference
部分的提示:
http://docs.h5py.org/en/latest/refs.html
In [348]: d = f['imgIdx/anno']
In [349]: d[1000]
Out[349]: array([<HDF5 object reference>], dtype=object)
In [350]: d[1000].item()
Out[350]: <HDF5 object reference>
In [351]: f[d[1000].item()]
Out[351]: <HDF5 dataset "N4": shape (4, 2), type "<f8">
In [352]: f[d[1000].item()][:]
Out[352]:
array([[ 87., 447.],
[158., 160.],
[446., 586.],
[325., 283.]])
我还在 shell 中使用了 h5dump
来查看文件及其内容。
我已经尝试了好几天,在我的 python 项目中寻找读取此文件的正确方法。这是一个普通的matlab数据结构文件。
https://drive.google.com/open?id=1E1w1eQn6pTcQ1lkhGMJzmB5ugtmaDPht
我很熟悉如何读取 h5 文件,这个 .mat 文件似乎就是这种情况,因为它不允许 scipy.loadmat 读取它。所以我用了 h5py.Read().
import h5py
f = h5py.File('./imgIdx.mat','r')
d = f['imgIdx/anno']
print(d[1000]) # accessing an arbitrary object
[<HDF5 object reference>]
这是我无法处理的对象 这应该是一个 m x 4 矩阵 其中 m >= 0
遵循文档中 object reference
部分的提示:
http://docs.h5py.org/en/latest/refs.html
In [348]: d = f['imgIdx/anno']
In [349]: d[1000]
Out[349]: array([<HDF5 object reference>], dtype=object)
In [350]: d[1000].item()
Out[350]: <HDF5 object reference>
In [351]: f[d[1000].item()]
Out[351]: <HDF5 dataset "N4": shape (4, 2), type "<f8">
In [352]: f[d[1000].item()][:]
Out[352]:
array([[ 87., 447.],
[158., 160.],
[446., 586.],
[325., 283.]])
我还在 shell 中使用了 h5dump
来查看文件及其内容。