ファイルを知る、使いこなす。
.mat

MATLABデータ

データ分析・科学

MATはMATLABの変数保存に使われます。版により構造が違い、Version 7.3はHDF5ベースですが、すべてのMATをHDF5として読めるわけではありません。配列だけでなくオブジェクトを含む場合もあり、MathWorksは未知のMATのloadでコードが実行され得ると注意しています。

主な用途
配列・構造体等のMATLAB変数の保存
中身の種類
バイナリデータ
目次・よくある質問・根拠資料を見る

内容の最終確認: · 編集:Kai

開き方・操作手順

使っている環境や目的の項目を開いて、手順を確認してください。

信頼できるMATの変数を調べる

入手元を確認してコピーを扱います。

  1. MATLABでwhos -file等の対応する情報確認を使います。
  2. 変数名、型、寸法と必要な容量を確認します。
  3. 必要な変数だけを構造体等へ読み込みます。
Pythonで対応版を読む

MAT 7.3とそれ以前で条件が違います。

  1. MATの保存版と変数の型を確認します。
  2. 対応版ならSciPy loadmat、7.3なら対応するHDF5読込を検討します。
  3. 配列の形、文字列、セル等の対応を比較します。
大きな配列を部分的に扱う

効率的な部分読込には保存版の条件があります。

  1. MAT 7.3等の対応条件と変数のサイズを確認します。
  2. matfile等で必要な範囲だけを読みます。
  3. 軸の順序と部分範囲を記録し結果を照合します。

操作名・対応状況はアプリ・OS・版によって異なります。変更する前に原本を残してください。

開けないとき:症状から確認

  • 別ツールで読めない:MATの保存版と、セル・構造体・独自クラスの対応を確認します。
  • 大きすぎて開けない:変数ごとの容量と、対応版の部分読み込みを確認します。
  • 変数が上書きされる:元作業を保存し、別の変数や構造体へ読み込みます。
  • SciPyで7.3が読めない:loadmatの対応版とHDF5形式の条件を確認します。
  • 読込で変数が置き換わる:構造体への代入等で既存ワークスペースと分けます。
  • メモリー不足:変数の寸法と保存版を調べ、対応する部分読込を使います。

MATの数値変数 → CSV / NPY / HDF5

  1. 信頼できる環境で必要な数値変数を選び、形状と単位を記録します。
  2. 目的に合う形式へ出し、配列順序、複素数、精度、欠損値を比較します。
  3. 配列の寸法、軸、セル・構造体と必要な変数を移行後に照合します。

CSVでは多次元構造や独自オブジェクトを保持できません。MATをH5へ改名してもVersion 7.3への変換にはなりません。

保存版と変数の型を記録

MATの数値行列、セル、構造体、オブジェクトは移行条件が違います。読み込み先で型と形が変わっていないか比較します。

Python側のHDF5読み込みができても、MATLAB固有構造を全部同じように復元できるとは限りません。

この手順の根拠:MathWorks · MAT File Versions / MathWorks · load — Load variables from file / MathWorks · MatFile — Access variables without loading the entire file / SciPy Project · scipy.io.loadmat

部分範囲を間違えず確認

MATLABのmatfileで効率的な部分アクセスを行うには7.3等の条件を確認します。必要な変数と軸を記録します。

CSVにする場合は多次元配列等の扱いを先に決め、元の寸法と型情報を保管します。

この手順の根拠:MathWorks · MAT File Versions / MathWorks · load — Load variables from file / MathWorks · MatFile — Access variables without loading the entire file / SciPy Project · scipy.io.loadmat

関連形式との違い

関連形式との違い
形式主な役割確認する点
MAT prior to 7.3旧保存方式等対応するMATリーダー
MAT 7.3HDF5基盤の保存MAT構造と部分読込
CSV二次元の文字表等軸・型情報が別

取り扱いと安全性

未知のMATを確認目的だけでloadしません。信頼できる作成者へ内容と保存版を確認し、原本を保管します。

よくある質問

MATは全部HDF5?

Version 7.3等に限られ、旧版は別構造です。

loadは読むだけで安全?

変数初期化でコードが実行され得ます。

画像へ出せば数値も保存できる?

可視化画像と元の数値配列は別に保管します。

Pythonで配列の形が変わったときは?

読み込みオプションによる次元の省略、セル・構造体の変換を確認します。元の寸法と軸の意味を照合します。

巨大な配列を全部CSVにする必要はある?

必要な変数・軸・部分範囲を決め、対応する部分読込を使います。出力に元の寸法と抽出条件を記録します。

形式の基本情報:正式名称・MIME type・管理団体
名称
MATLAB MAT-file (multiple versions)
管理・仕様
MathWorks
MIME type
作成元・配信元の指定による。拡張子だけでMIME typeは確定できません。

公式・一次情報