【问题标题】:How to open following mat file in python如何在python中打开以下mat文件
【发布时间】:2019-09-25 04:25:18
【问题描述】:

我在 MATLAB 中创建了以下带有“-v7.3”标志的 .mat 文件。由于数据量很大,我需要这个标志。我在 MATLAB 中使用了以下命令来保存这个文件。

   save('sample10_properties.mat', 'stats','-v7.3')

这是数据的链接

https://drive.google.com/file/d/195fj6Tl1n_drS8R_A6bdbOEc3rGkiMqS/view?usp=sharing

我可以在 python 中看到 stats 变量,但我不知道如何访问。任何帮助将不胜感激。

import numpy as np 
import h5py 
f = h5py.File('sample10_properties.mat')
f.keys()   [u'#refs#', u'#subsystem#', u'stats']
f.values()  [<HDF5 group "/#refs#" (13951 members)>, <HDF5 group "/#subsystem#" (1   members)>, <HDF5 dataset "stats": shape (1, 6), type "<u4">]

stats 变量的大小为 (1390, 18)。 谢谢

【问题讨论】:

  • 以 HDF5 格式存储的 Unsnarling Matlab 文件对于新用户来说可能会很棘手。 Matlab 创建不是数据的“指针对象”,而是给出文件中另一个对象的路径。使用 HDFView 查看架构。组/#subsystem# 中的表MCOS 有一行包含11 个字段,每个字段都指向另一个对象(例如/#refs#/b) 引用的表有1x288 的8 位无符号整数然后/#refs#/ 中有额外的表用于b0 , b0b, b0c, b1, b1b, b1c。不知道该怎么做。您可以通过 SVHN 数据集看到这一点。
  • 链接到我的答案:different-ways-of-accessing-the-hdf5-group-in-svhn 关于类似的 Matlab/HDF5 文件问题。

标签: python hdf5


【解决方案1】:

如果你想加载单个值

import h5py
f = h5py.File('sample10_properties.mat','r')
myvar = f['myvar'].value

所有值

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

我时间紧迫,所以我很快就写了这篇文章,对任何错误或不适合您的数据表示歉意。

【讨论】:

    猜你喜欢
    • 2012-04-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-12-18
    • 2014-11-06
    • 2014-10-17
    • 1970-01-01
    • 2015-06-27
    相关资源
    最近更新 更多