MAT (.mat)
予備知識
-
- MATLAB MATファイル.
- 行列データ形式.
- MATHLAB数値計算ソフトウェアのネイティブデータ形式.
- 数値行列,ブール値,または文字列を保存する.
- 疎な配列,ネストした構造等も保存する.
- バイナリ形式.
- MATのバージョン7.3のファイルはHDF5を使用する.
ImportとExport
- Import["file.mat"]はMATファイルをインポートし,数,文字列,ブール値を含む多次元配列を返す.
- Import["file.mat",elem]はMATファイルから指定された要素をインポートする.
- インポートの形式はImport["file", "MAT"]またはImport["file",{"MAT",elem,…}]と指定できる.
- Export["file.mat",expr]は整数,倍精度数,複素数の配列からMATファイルを作成する.
- Export["file.mat",{elem1->expr1,elem2->expr2,…},"Rules"]は規則を使い,エキスポートされる要素を指定する.
- 一般的な情報は,以下の関数ページを参照のこと.
-
Import, Export ファイルからインポートする,あるいはファイルへエキスポートする CloudImport, CloudExport クラウドオブジェクトからインポートする,あるいはクラウドオブジェクトへエキスポートする ImportString, ExportString 文字列からインポートする,あるいは文字列へエキスポートする ImportByteArray, ExportByteArray バイト配列からインポートする,あるいはバイト配列へエキスポートする
要素
- 一般的なImport要素:
-
"Elements" ファイル中の有効な要素とオプションのリスト "Summary" ファイルの概要 "Rules" 使用可能なすべての要素の規則のリスト - データ表現要素:
-
"Data" 多次元の配列として与えられる数値またはテキストデータ "LabeledData" 規則のリストとして与えられるデータ - ImportとExportはデフォルトで"Data"要素を使う.
- データ記述子要素:
-
"DataFormat" 変数のデータ型 "Dimensions" 配列の次元 - 数値データは適切な場合はSparseArrayオブジェクトとしてインポートされる.
- メタ情報要素:
-
"Comments" このファイルに保存されるユーザコメント "Labels" 文字列のリストとして与えられる変数名 "Version" ファイルのMAT仕様のバージョン
オプション
- Importオプション:
-
"IndeterminateValues" Automatic infinity,NaN等の置換値 - 別の値の置換規則を指定するためには"IndeterminateValues"を使う.以下の設定がサポートされている:
-
val 任意の不定値のための固定値 val <|"Nan"…,"Inf"…,"-Inf"…|> 不定値のタイプに応じた特定の置換規則 -
val 任意の不定値のための固定値 val <|"NaN"…,"Inf"…,"-Inf"…|> 不定値のタイプに応じた特定の置換規則 - Exportオプション:
-
CompressionLevel Automatic 使用する圧縮レベル OverwriteTarget True 既存のファイルを上書きするかどうか "Version" Automatic 使用するファイル形式のバージョン - OverwriteTarget->"Append"を使うと,新しいオブジェクトを既存のファイルに加えることができる.
- エキスポートでサポートされているバージョンは"4","5","7.3"である.
- デフォルトではエキスポートはバージョン"5"のMATファイルを生成する.
バイトより大きい変数についてはバージョン"7.3"のファイルが生成される.
例題
すべて開く すべて閉じる例 (3)
スコープ (9)
Import (2)
利用可能なImport要素をリストする:
Import["ExampleData/numbers.mat", "Elements"]Import["ExampleData/numbers.mat", "y"]Export (7)
Export["file.mat", Range[5]]変数名が与えられないと,デフォルトの変数名"Expression1"が使われる:
Import["file.mat", "LabeledData"]Export["file.mat", "v" -> Range[10]]Import[%, "LabeledData"]複数の変数をファイルにエキスポートする.変数名は明示的に与えなければならない:
Export["file.mat", {"v1" -> Range[10], "v2" -> Reverse@Range[5]}]Import[%, "LabeledData"]SparseArrayをエキスポートする:
Export["file.mat", SparseArray[{{1, 1} -> 1., {2, 2} -> 2., {3, 3} -> 3., {1, 4} -> 4.}]]Import[%, "Data"]Export["file.mat", {{"a", "bb"}, {"ccc", "dddd"}}]Import[%, "Data"]Export["file.mat", {{"a", 5}, {{Pi, E}, "text"}}]Import[%, "Data"]data = Table[<|"a" -> 10 * i + j, "b" -> IntegerName[j * j + i]|>, {i, 1, 3}, {j, 1, 2}];data//GridExport["file.mat", data]Import[%, "Data"]//First//GridImport要素 (10)
"Comments" (1)
"Data" (2)
"DataFormat" (1)
"Dimensions" (1)
"LabeledData" (2)
ファイル内のすべての変数に対して,リストあるいは namedata の規則としてデータをインポートする:
Import["ExampleData/numbers.mat", "LabeledData"]Export["file.mat", {"v1" -> Range[10], "v2" -> Reverse@Range[5]}];Import["file.mat", {"LabeledData", "v1"}]変数の名前が文字列パターンにマッチするものをインポートする:
Import["file.mat", {"LabeledData", "v*"}]"Labels" (1)
"Summary" (1)
Exportオプション (14)
CompressionLevel (3)
大きい数値配列をエキスポートするときは,デフォルトではデータは圧縮される(レベル1に相当する):
Export["file.mat", RandomInteger[1000, {1000, 1000}]]FileSize["file.mat"]Export["file.mat", RandomInteger[1000, {1000, 1000}], CompressionLevel -> 0]FileSize["file.mat"]Export["file.mat", RandomInteger[1000, {1000, 1000}], "Version" -> 4, CompressionLevel -> 1]FileSize["file.mat"]"Header" (3)
Export["file.mat", {1, 2, 3}, "Header" -> Automatic]Import["file.mat", "Comments"]見出しを指定すると,MATのバージョン番号の後に保存される:
Export["file.mat", {1, 2, 3}, "Header" -> "I created this file"]Import["file.mat", "Comments"]Export["file.mat", {1, 2, 3}, "Header" -> StringJoin@@Table[Alphabet[], 5]];OverwriteTarget (3)
デフォルトではExportが呼び出されるたびに新しいファイルが作られる:
Export["file.mat", {1, 2, 3}]OverwriteTargetFalseとすると,既存のファイルは上書きされない:
Export["file.mat", {4, 5, 6}, OverwriteTarget -> False]既存のファイルの最後に変数を加えるためには,OverwriteTarget"Append"を使用する:
Export["file.mat", {"v" -> {4, 5, 6}}, OverwriteTarget -> "Append"]Import["file.mat", "LabeledData"]既存のファイルに加えられた変数は新しい名前を持たなければならない:
Export["file.mat", {"v" -> {Pi, Pi}}, OverwriteTarget -> "Append"]"Version" (5)
デフォルトではExportはMATファイルバージョン5を作成する:
Export["file.mat", {1, 2, 3}]Import[%, "Version"]Export["file.mat", {1, 2, 3}, "Version" -> 4]Import[%, "Version"]Export["file.mat", {1, 2, 3}, "Version" -> 7.3]Import[%, "Version"]Export["file.mat", {1, 2, 3}, "Version" -> "7.3"]Import[%, "Version"]データ型によっては(型が混在する配列等)MATバージョン4にエキスポートできない:
Export["file.mat", {1, "text", Pi}, "Version" -> "4"]関連するガイド
-
▪
- インポートとエキスポート ▪
- 全形式のリスト ▪
- 数学データ形式 ▪
- 行列と線形代数 ▪
- 数値データ形式 ▪
- 信号処理 ▪
- 疎な(スパース)配列
履歴
2004 で導入 (5.1) | 2010 で更新 (8.0) ▪ 2020 (12.2) ▪ 2021 (12.3)