MATLAB MAT ファイル
-
MATLAB で
matfile()
関数を使用して MAT ファイルを作成する -
MATLAB の
save()
関数を使用して MAT ファイルにデータを保存する -
MATLAB の
load()
関数を使用して MAT ファイルからデータをロードする
このチュートリアルでは、MAT ファイルを使用して MATLAB にデータを格納およびロードする方法について説明します。
MATLAB で matfile()
関数を使用して MAT ファイルを作成する
matfile()
関数を使用して、特定の名前の MAT ファイルを作成できます。それを作成するには、関数でファイル名とファイル拡張子を渡す必要があります。たとえば、matfile()
関数を使用して、ファイル名が fileName
で拡張子が .mat
の MAT ファイルを作成しましょう。以下のコードを参照してください。
mat_file = matfile('fileName.mat')
matfile()
関数を使用して、MAT ファイルの書き込みアクセスを有効または無効にすることもできます。たとえば、以下のコードを参照してください。
mat_file = matfile('fileName.mat','Writable',true)
上記のコードでは、ファイルへの書き込みアクセスを true
として指定しました。これは、にデータを保存できることを意味します。書き込みアクセスが false
の場合、ファイルにデータを保存できません。
MATLAB の save()
関数を使用して MAT ファイルにデータを保存する
save()
関数を使用して、MAT ファイルに任意のタイプのデータを保存できます。たとえば、上記で作成した MAT ファイルに行列とセルを保存してみましょう。以下のコードを参照してください。
myMatrix = [1 2 3; 4 5 6];
myCell = {'a','b','c'};
mat_file = matfile('fileName.mat','Writable',true);
save('fileName.mat','myMatrix')
mat_file.myCell = myCell;
上記のコードでは、save()
関数を使用して myMatrix
を MAT ファイル fileName.mat
に保存しました。また、オブジェクト mat_file
を使用して、MAT ファイル fileName.mat
に myCell
を保存しました。save()
関数を使用してデータを保存すると、既存のデータが上書きされますが、ファイルのオブジェクトを使用すると、以前のデータは変更されず、MAT ファイルに個別に保存されます。MAT ファイルは .m
ファイルの現在のディレクトリに保存されることに注意してください。ディレクトリを変更したい場合は、その特定のファイルに新しい .m
ファイルを作成し、そこに MAT ファイルを保存する必要があります。
MATLAB の load()
関数を使用して MAT ファイルからデータをロードする
load()
関数を使用して、MAT ファイルからデータをロードできます。たとえば、上記で作成した MAT ファイルからデータをロードしてみましょう。以下のコードを参照してください。
data = load('fileName.mat')
上記のコードでは、load()
関数を使用して MAT ファイル fileName.mat
をロードしました。ファイルが .m
ファイルと同じディレクトリにあることを確認してください。そうしないと、MATLAB はエラーを出します。別のディレクトリから MAT ファイルをロードするには、完全なファイルパスとその名前および拡張子を渡してロードする必要があります。たとえば、以下のコードを参照してください。
data = load('C:\myFolder\myFile.mat')
whos
関数を使用して、ロードされた MAT ファイルに格納されている変数のタイプやサイズなどの変数の情報を確認できます。たとえば、上記の MAT ファイル fileName.mat
に保存されている変数を確認してみましょう。以下のコードを参照してください。
whos('-file','fileName.mat')
出力:
Name Size Bytes Class Attributes
myCell 1x3 318 cell
myMatrix 2x3 48 double
出力からわかるように、MAT ファイル fileName.mat
には cell
配列とその中に格納された行列があります。MAT ファイルから変数を 1つだけ抽出して出力する場合は、その変数の名前を使用して変数を抽出できます。たとえば、上記の MAT ファイルから変数 myCell
を抽出してみましょう。以下のコードを参照してください。
data = load('fileName.mat');
mat = data.myMatrix
出力:
mat =
1 2 3
4 5 6
出力からわかるように、MAT ファイルから必要な変数を抽出し、変数 mat
に格納しました。MAT ファイルの詳細については、このリンクを確認してください。