【发布时间】:2017-04-23 03:32:47
【问题描述】:
我正在尝试使用 h5py 库在 python 中读取 HDF5 格式的 MATLAB 文件。该文件名为“Q_visSDF_accurate.mat”,有两个键:“filename”和“sdf”。 “文件名包含一个单元格数组字符串。“sdf”是一个包含浮点数的 [6001, 49380] 矩阵。使用以下代码提取变量 sdf 没有问题:
import h5py
data = h5py.File("Q_visSDF_accurate.mat", 'r')
sdf = data.get("sdf")[:,:]
sdf = sdf.astype(float)
但是,我无法读取文件名变量。我试过了:
filename = data.get("filename")[0]
但代码返回:
array([<HDF5 object reference>, <HDF5 object reference>,
<HDF5 object reference>, ..., <HDF5 object reference>,
<HDF5 object reference>, <HDF5 object reference>], dtype=object)
我可以取消引用文件名变量的包含吗?使用 hdf5storage 包不是解决方案,因为它仅适用于 python 32 位并且只能读取 matlab 变量的子集。
【问题讨论】:
-
您是否尝试过使用
hdf5storage?它可以将基于 hdf5 的 .mat 文件读取为更可用的形式。 -
我相应地编辑了我的原始帖子。
-
你解决了吗?我仍然坚持你的确切问题