【Matlab/Python】MatlabとPython間のデータ転送

1473 ワード

多くの場合、matlabのデータを保存し、pythonで処理する必要があります.
メソッド1(.matフォーマット)
matlabのデータを直接記憶する.mat形式でpythonでscipyを利用します.ioのloadmat関数で読み込む
import scipy.io     as sio
data = sio.loadmat(...)

メソッド2(.h 5フォーマット)
保存するとき.matファイルが大きい場合、matlabではsave-v 7を使用する必要があります.3を保存できます.ただし、利用方法1でpythonで読み込むとサポートされません.以下の方法で読み取ることができます
with h5py.File("mydata.mat") as f:
    data = f["mydata"][:]

データは正確に読み取ることができるが、配列次元は逆になる、すなわち本来は(2,3,4,5)、読み出されるのは(5,4,3,2)であるが、唯一である.matデータ用save-v 7.3保存時に、この方法で読み取ることができます.そうでなければ、適用方法が読み出すのでmatlabでデータを保存することができます.h 5のフォーマットは、方法2に従ってmatlabに記憶するものを一括して読み取る.h 5フォーマットは以下の方法で
h5create('data.h5','/data',[2,3,4,5]);
data = rand(2,3,4,5)
h5write('data.h5','/data',data)

しかしpythonで読み込むとマトリクス次元が逆になります