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 ファイルの詳細については、このリンクを確認してください。
