【问题标题】:De-referening an hdf5 format?取消引用 hdf5 格式?
【发布时间】:2016-06-07 04:27:43
【问题描述】:

我正在使用两种不同的语言,即 Matlab 和 python。我在 Matlab 中创建了 5 个变量。每个变量都有一个大小为 (150x1) 的单元格,如下所示:

每个单元格的大小为 (128 x (:)),如下所示:

我使用 hdf5 格式的 -v7.3 将此工作区保存到 .mat 文件中。

在 python 中,我使用 h5py 加载了 .mat 文件。我能够加载变量,但无法从每个变量中提取值。

我得到这个语句“array([[], dtype=object)”但是值没有加载到 python 工作区中。我想将所有 150 个单元格 o 加载到变量 A 中。如何取消引用 hdf5 引用?

【问题讨论】:

    标签: python matlab python-2.7 h5py


    【解决方案1】:

    也许您应该将数据保存在常规的 hdf5 文件中。 .mat 文件是基于 hdf5 的,但它不是普通的 hdf5 文件。

    在 MATLAB 中,您可以在本地使用 http://es.mathworks.com/help/matlab/import_export/exporting-to-hierarchical-data-format-hdf5-files.html

    【讨论】:

    • 谢谢。我一定会考虑的.. 但是有没有可能使用 mat 文件解决这个问题?
    • 请放示例代码,看看你是如何尝试的。
    • 代码如下:import h5py f = h5py.File('D:/Thesis/python svm/AFN.mat','r')我尝试了link中的soultions但是单元格的大小是恒定的。
    【解决方案2】:

    要取消引用,请使用:

    f[ref]
    

    其中fh5py.File 对象,ref<HDF5 object reference> 对象。

    h5py documentation on references

    【讨论】:

      猜你喜欢
      • 2016-05-31
      • 2017-10-24
      • 2017-04-23
      • 1970-01-01
      • 2016-10-28
      • 2013-08-06
      • 1970-01-01
      • 2017-12-31
      • 2017-05-26
      相关资源
      最近更新 更多