PythonでMATファイルを使う

最終更新日: 2020年7月9日

MATファイルとは?

Matlabで使われている階層型のバイナリファイルです1。MATファイルではデータ圧縮が行われるので、繰り返しが多い大きなデータの保存に向いています! また、複数の変数をまとめて保存できるので、解析結果の一括保存に便利です!

また、Matlab や Python の他にも、R や Julia などでも扱うことができます!2 emoji-plus1

Pythonで保存する

保存したいリストNumpy配列などを、辞書型にまとめることで保存することができます3

保存には、Scipy の scipy.io.savemat を使います。例えば、次のようにリストと文字列を保存します。

Python
import scipy.io

List = [0,1,2,3]
String = 'abcd'
Dictionary = {
  'List' : List,
  'String': String
}

Filename = 'savefile.mat'
scipy.io.savemat(Filename, Dictionary)

辞書型をそのまま保存できます!簡単ですね!emoji-100

Pythonで読み込む

読み込むときも簡単です

scipy.io.loadmat を使いましょう。

Python
import scipy.io

Dictionary = scipy.io.loadmat('savefile.mat')

読み込んだ辞書型は、保存した辞書型と保存日時などが含まれています。あとは、通常の辞書型として使えます!

Python
Dictionary['List'] # => [0 1 2 3]
Dictionary['String'] # => abcd

…ということで、私は解析結果をMATファイルに保存しているのでした。他にもっといい保存方法があれば教えて下さい…。emoji-bow


Reference


  1. MathWorks - MATファイルのバージョン
  2. R.matlabMAT.jl が使えるようです。
  3. Numpy配列も混ぜて保存できるので、npyファイルより便利じゃないですか??