【问题标题】:Reading ALL variables in a .mat file with python h5py使用 python h5py 读取 .mat 文件中的所有变量
【发布时间】:2015-07-03 08:27:41
【问题描述】:

我正在尝试从“.mat”v7.3 文件中提取所有变量,并将它们转换为 NumPy 数组。有没有办法一般地做到这一点,最好不需要指定变量名?如何从 h5py.File 中获取所有当前变量名称,然后检查它们的尺寸?

例如。

 import numpy as np, h5py

 file = h5py.File('data.mat','r')
 for "all variables in mat file"
     ...fill numpy array
 end

【问题讨论】:

标签: python matlab numpy h5py


【解决方案1】:

在查看了一些 cmets 和 H5PY Groups 的文档后,我发现您可以遍历所有 H5PY“项目”以获取与每个变量名称关联的值。我在下面举了一个例子。如果它们是获取变量名称和值的更好方法,请发布。

注意:该示例仅提取包含数值数组 (h5py.Dataset) 的变量的值。如果您有嵌套的组或元胞数组,那么您需要进一步访问它们以获取值。

import numpy as np
import h5py

f = h5py.File('simdata_020_01.mat','r')
variables = f.items()

for var in variables:
    name = var[0]
    data = var[1]
    print "Name ", name  # Name
    if type(data) is h5py.Dataset:
        # If DataSet pull the associated Data
        # If not a dataset, you may need to access the element sub-items
        value = data.value
        print "Value", value  # NumPy Array / Value

【讨论】:

  • 你可以只做for name, data in f.items():而不是整个variablesvar[0]
猜你喜欢
  • 2021-02-23
  • 2019-07-06
  • 2013-10-19
  • 1970-01-01
  • 1970-01-01
  • 2017-04-23
  • 2014-07-31
  • 1970-01-01
  • 2020-11-03
相关资源
最近更新 更多