matファイルからの読み込み

-v7.3 形式 (HDF5) の mat

MATLAB の -v7.3 で保存すると,HDF5 形式になるようなので,h5py というライブラリを使用する.

import h5py

f = h5py.File('matfile.mat','r')
var = f['var']



-v7.3 以前の mat

scipy を使えば,MATLAB の mat ファイルをそのまま python の中に導入できる.

from scipy import io

のようにインポートをしたとすると,

matdata = io.loadmat(filename, squeeze_me=True)

で matdata に mat ファイル全部の変数が入る.squeeze_me=True は要素数1の次元を消す.
変数を取り出したければ,

t = matdata["t"]

のようにする.

t = io.loadmat(filename, squeeze_me=True)["t"]

でも読み込めるが,1行で変数2つ以上抜き出したい時にどうするのかはわからない.←map 関数でいいような気がしてきた

HDF 形式には対応しておらず,-v7.3 の matファイルを読もうとすると下記のようなエラーが出た.

File "/usr/local/lib/python3.6/dist-packages/scipy/io/matlab/mio.py", line 78, 
in mat_reader_factory
   raise NotImplementedError('Please use HDF reader for matlab v7.3 files')
NotImplementedError: Please use HDF reader for matlab v7.3 files

Front page   Edit Diff Attach Copy Rename Reload   New List of pages Search Recent changes   Help   RSS of recent changes
Last-modified: 2019-07-18 (Thu) 06:05:00 (1736d)