h5py:正确读取存储在 MATLAB 中的"表"类的问题 (.mat -7.3)



我正试图使用h5py模块在Python 3.8中导入一个MATLAB(.mat-7.3(文件。该文件包含结构类和类别。我成功地导入了结构类对象。但是,类在导入后显示了错误的维度。

import h5py

Path='data/LUT_0/LUT_0.mat' #path file path to be read
f = h5py.File(Path, mode='r') #read mat file
list(f.keys())

结果:

['#refs#', '#subsystem#', 'LUT_Refl', 'LUT_Var']

LUT_ Var是<HDF5数据集";LUT_Var":形状(1,6(,类型"gt;。尝试访问数据的结果是:

f['LUT_Var'][()]
array([[3707764736,          2,          1,          1,          1,
1]], dtype=uint32)

不过,我期待一张尺寸为169560x12的桌子。当我从MATLAB中将该表导出为txt文件时,我可以在Python中导入。我还可以在MATLAB中重新导入.mat文件,并且不会看到任何数据损坏。有人知道这里可能缺少什么吗?

谢谢。

@ThatNewGuy。我可以通过以下方式访问Matlab文件的内容:

import h5py
import numpy as np
import pandas as pd
f = h5py.File(matloc, 'r') # matloc = path to your .mat
print(list(f))
re = f.get('LUT_Refl/Full')
w = f.get('LUT_Refl/WL')
data = pd.DataFrame(np.array(re)).transpose()  # For converting to a NumPy array
wl = pd.DataFrame(np.array(w))

相关内容

  • 没有找到相关文章

最新更新