モード形状データを含む NASTRAN からの HDF5 出力ファイルがあります。それらをMatlabとPythonに読み込んで、さまざまな後処理手法を確認しようとしています。問題のファイルは、これらの両方のテストのローカル ディレクトリにあります。ファイルは 1.2 GB とセミラージですが、私が以前に読んだ HDF5 ファイルに関してはそれほど大きくありません。アクセスしたいテーブルには 17567342 行と 8 列があります。最初と最後の列は整数で、中間の 6 列は浮動小数点数です。
マトラブ:
file = 'HDF5.h5';
hinfo = hdf5info(file);
% ... Find the dataset I want to extract
t = hdf5read(file, '/NASTRAN/RESULT/NODAL/EIGENVECTOR');
この最後の操作は非常に低速です (時間単位で測定できます)。
パイソン:
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 に読み込む正しい (つまり、迅速な) 方法は何ですか?