Не могу прочитать .mat файл в python - PullRequest
0 голосов
/ 16 мая 2018

Я уже несколько дней пытаюсь найти правильный способ прочитать этот файл в моем проекте на 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>]

. Это объект, с которым я не могу справиться. Предполагается, что это матрица amx 4, где m> = 0

.

1 Ответ

0 голосов
/ 16 мая 2018

Следующие советы из раздела 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.]])

Я также использовал h5dump в оболочке для просмотра файла и его содержимого.

...