MAT ファイル形式とは?
.matは、MathWorksのテクニカルコンピューティング環境であるMATLABで使用されるバイナリデータファイルで、ワークスペースの名前付き変数を保存するために使用されます。配列、行列、構造体、セル配列、文字列がすべて1つの.matファイルにパックされており、アナリストは作業セッション全体を保存し、中断したときとまったく同じ状態で再ロードできます。
この形式は数世代にわたって進化してきました。1996年に導入された主流のLevel 5コンテナは、128バイトのASCII記述ヘッダー(最初のバイトはMATLAB 5.0 MAT-fileと読み取れます)で始まり、その後に変数名、データクラス、次元、および生の配列バイトを保持するタグ付きデータ要素(miMATRIXレコード)のシーケンスが続きます。形式v7では、この同じ構造を維持しながら、変数ごとのオプションのDEFLATE (zlib) 圧縮が追加されました。MATLAB R2006b (2006) で導入されたMAT-file v7.3は、コンテナを密かにHDF5に切り替えました。そのため、一部の.matファイルはHDFViewなどの汎用HDF5ツールで開くことができますが、古いファイルは開けません。また、v7.3形式では、Level 5にあった変数あたり約2 GBという実用上のサイズ制限も撤廃されています。
MATLABでの.matファイルの保存と読み込みには、saveコマンドとloadコマンドを使用します。HDF5バックエンドを選択するには、saveに-v7.3を渡します。GNU Octaveは、Level 5とv7.3の両方をネイティブで読み書きできます。Pythonでは、scipy.io.loadmatがLevel 5を処理し、h5pyがv7.3を処理します。より単純な表形式の結果を得るために、.csvファイルとデータを交換することもできます。登録されているMIMEタイプはapplication/x-matlab-dataです。
セキュリティと安全性
リスク: LOW.matデータファイルは受動的です。数値や文字列を保存するものであり、実行可能コードではないため、変数を確認するために開くことのリスクは低いです。2つの注意点があります:(1) MATLABの関数ハンドルやオブジェクトは.matにシリアル化でき、それらをロードすると、限定的なケースでクラスコードが呼び出される可能性があります。信頼できないソースからの.matファイルは、スクリプトで実行するデータと同様の注意を払って扱ってください。(2) v7.3の.matはHDF5ファイルであるため、メンテナンスされているHDF5/MATリーダーを使用してください。Officeドキュメントのようなマクロ形式の自動実行はありません。
形式の詳細
概要- 3ds Max / ゲームエンジン マテリアルファイル - 一部の3Dおよびゲームツールは、マテリアル定義(シェーダー/テクスチャ)に .mat を使用しますが、MATLABとは無関係です。
- Audiotool .mat セッション - オンラインの Audiotool ミュージックスタジオは、プロジェクトを .mat 拡張子で保存します。
- Microsoft Access テーブルショートカット - レガシー:Accessテーブルを起動する小さなポインタ。このサイトのデータベースに記録されている(誤った)名称です。
MAT ファイルを開くプログラム
技術的詳細
詳細仕様| 開発元 | MathWorks |
| 形式タイプ | バイナリ科学データコンテナ(配列および名前付き変数)。v7.3はディスク上でHDF5を使用 |
| 形式バージョン | Level 4(レガシー、1996年以前)、Level 5(MATLAB 5-7)、v7.3(HDF5ベース、R2006b以降) |
| Level 5 ファイルシグネチャ | バイトオフセット0から始まる128バイトの記述ヘッダー内のASCIIテキスト «MATLAB 5.0 MAT-file» |
| v7.3 ファイルシグネチャ | オフセット0のHDF5マジックバイト 89 48 44 46 0D 0A 1A 0A。HDF5ユーザーブロックは «MATLAB 7.3 MAT-file» で始まる |
| バイト順序 | 自己記述型:Level 5ヘッダーの126-127バイト目に格納される «MI» = ビッグエンディアン、 «IM» = リトルエンディアン。v7.3 (HDF5) は独自のバイト順序メタデータを記録 |
| サポートされるデータ型 | double, single, int8/16/32/64, uint8/16/32/64, 複素数配列, char, logical, struct, cell array, 関数ハンドル |
| 圧縮 | Level 5 v7での変数ごとのオプションのDEFLATE (zlib)。v7.3ではHDF5のgzip/deflateフィルターが利用可能 |
| 変数ごとのサイズ制限 | Level 5:変数あたり約2 GB。v7.3 (HDF5):実用的な上限なし - 2 GBを超える配列をサポート |
| MIMEタイプ | application/x-matlab-data (実際には application/matlab-mat や application/octet-stream も見られる) |
| Level 5 内部構造 | 128バイトの記述テキストヘッダーに続き、変数名、クラス、次元、および生の配列データを格納する一連のタグ付き miMATRIX データ要素 |
| HDF5ツールの互換性 | v7.3ファイルは有効なHDF5であり、MATLABなしでHDFView、HDF5 Cライブラリ、h5py、およびその他のHDF5対応ツールで開くことが可能 |
| Pythonからのアクセス | Level 5/v7ファイルには scipy.io.loadmat、v7.3ファイルには h5py または mat73 パッケージを使用 |
| MATLAB saveコマンドフラグ | -v6 または -v7 は Level 5 を選択。-v7.3 は HDF5 ベースの形式を選択(例:save('data.mat','varname','-v7.3')) |
| 整合性チェック | Level 5にはファイル全体のチェックサムなし。v7.3 (HDF5) はオプションのデータセットごとのHDF5チェックサムフィルターをサポート |
| リリース日 | MAT-file Level 5 format with MATLAB 5 (1996); v7.3 (HDF5-based) added in MATLAB 7.3 (2006) |
| 最新バージョン | MAT-file v7.3 (HDF5-based, supports variables > 2 GB); Level 5 still used by v6/v7 |
| オープンスタンダード | はい · ロイヤリティフリー |
| 仕様書 | www.mathworks.com |
MAT の変換
コミュニティ Q&A
ユーザーからの質問まだ質問はありません。MAT ファイルについて最初の質問をしてみましょう。