gpt4 book ai didi

在 Matlab 中转置的 Python 创建的 HDF5 数据集

转载 作者:太空狗 更新时间:2023-10-29 20:43:49 25 4
gpt4 key购买 nike

我有一些在 Python 和 Matlab 之间共享的数据。我过去是通过将 NumPy 数组保存在 MATLAB 样式的 .mat 文件中来实现的,但我想切换到 HDF5 数据集。但是,我注意到一个有趣的特征:当我将 NumPy 数组保存在 HDF5 文件中(使用 h5py )然后在 Matlab 中读取它(使用 h5read )时,它最终被转置。有什么我想念的吗?

Python代码:

import numpy as np
import h5py

mystuff = np.random.rand(10,30)

f = h5py.File('/home/user/test.h5', 'w')
f['mydataset'] = mystuff
f.close()

Matlab代码:

mystuff = h5read('/home/user/test.h5', '/mydataset');
size(mystuff) % 30 by 10

最佳答案

这是 Matlab 的 HDF5 读取器例程中的一个怪癖。 (我认为这种行为背后的原因是:数据在二进制文件中按 C 顺序排列,而 Matlab 数组按 Fortran 顺序排列,因此它们应该将数据报告为转置而不是重新排序。)

如果您使用 HDF5 工具检查由 Python 创建的文件,尺寸应该是:

$ h5ls test.h5 mydataset                Dataset {10, 30}

关于在 Matlab 中转置的 Python 创建的 HDF5 数据集,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21624653/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com