matファイル

Matlab では計算課程をスクリプトファイル(*.m)に保存することができるが,計算結果等のワークスペースに表示される変数は Matlab を終了するときに保存されずに終了する.
Matlab で何らかの計算を行うとき,その計算結果や計算途中の変数を保存したい場合がある.例えば,あるデータの変換結果をさまざまな計算方法に利用する場合,それぞれの計算方法を実行するスクリプトごとでデータの変換を繰り返し計算するのは無駄である.そこで,データの変換結果(変数)を Matlab の提供する形式のバイナリファイルで保存することでこの無駄手間を省く.
Matlab では ascii 形式・バイナリ形式で変数を保存することができる.しかし, asciiでは

    • 数値がテキストで保存されるため,分解能が失われる
    • ファイルサイズが大きくなる
    • 1つの行列形式の数値しか保存できない

という不都合が生じる.ascii 形式で保存することで通常のテキストエディタから保存した内容をみることができるのは便利かもしれない.が,僕個人に限っては利便性を感じない.バイナリ形式の場合は以上の3つの不都合は解消される.

%保存
data_test1=rand(1,100);
data_test2=rand(1,200);
filename=uiputfile('*.mat');
save(filename,'data_test1','data_test2')
%ロード
load(uigetfile('*.mat'));

ためしに uiputfile, uigetfile 関数を使ってみたが,直接 mat ファイル名を指定しても保存・入力できる.