我有一个来自 NASTRAN 的 HDF5 输出文件,其中包含模式形状数据。我正在尝试将它们读入 Matlab 和 Python 以检查各种后处理技术。有问题的文件位于这两个测试的本地目录中。该文件是 1.2 GB 的半大文件,但就我之前读过的 HDF5 文件而言肯定没有那么大。我要访问的表中有 17567342 行和 8 列。第一列和最后一列是整数,中间 6 列是浮点数。
MATLAB:
file = 'HDF5.h5';
hinfo = hdf5info(file);
% ... Find the dataset I want to extract
t = hdf5read(file, '/NASTRAN/RESULT/NODAL/EIGENVECTOR');
最后一个操作非常慢(可以以小时为单位)。
Python:
import tables
hfile = tables.open_file("HDF5.h5")
modetable = hfile.root.NASTRAN.RESULT.NODAL.EIGENVECTOR
data = modetable.read()
最后一个操作基本上是即时的。然后我可以像访问data
一个 numpy 数组一样访问它。我显然错过了关于这些命令正在做什么的一些非常基本的东西。我认为这可能与数据转换有关,但我不确定。如果我这样做,type(data)
我会回来numpy.ndarray
并type(data[0])
返回numpy.void
。
将我想要的数据集读入 Matlab 的正确(即快速)方法是什么?