使用python h5py读取.mat文件中的所有变量

时间:2015-04-24 16:13:10

标签: python matlab numpy h5py

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

实施例。

<CheckedTextView xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@+id/textView1"
    android:layout_width="wrap_content"
    android:layout_height="60dp"
    android:layout_marginLeft="5dp"
    android:gravity="center_vertical"
    android:padding="10dp"
    android:textColor="#000000"
    android:textSize="15sp"
    android:textStyle="bold"
    android:background="#F5F9F2"
    />

1 个答案:

答案 0 :(得分:5)

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

注意:该示例仅提取包含数字数组(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