ドキュメンテーション センター

  • 評価版
  • 製品アップデート

最新のリリースでは、このページがまだ翻訳されていません。 このページの最新版は英語でご覧になれます。

save

ワークスペース変数をファイルに保存

構文

  • save(filename)
  • save(filename,variables)
  • save(filename,variables,fmt)
  • save(filename,variables,version)
  • save(filename,variables,'-append')
  • save filename

説明

save(filename) は、現在のワークスペースにあるすべての変数を、filename という名前の MATLAB® 形式のバイナリ ファイル (MAT ファイル) に保存します。filename が既に存在する場合は、save によってファイルが上書きされます。

save(filename,variables) は、variables で指定された構造体配列の変数またはフィールドのみを保存します。

save(filename,variables,fmt) は、fmt で指定されたファイル形式で保存します。variables 引数はオプションです。variables を指定しない場合、関数 save はワークスペースのすべての変数を保存します。

save(filename,variables,version) は、version で指定された MAT ファイルのバージョンに保存します。前述のとおり、variables 引数はオプションです。

save(filename,variables,'-append') は、既存のファイルに新しい変数を追加します。上書きすることはありません。前述のとおり、variables 引数はオプションです。

Version 6 MAT ファイルに追加するには、入力引数として '-v6' も含めなければなりません。

save filename は、構文のコマンド形式です。コマンド形式では、必要な特殊文字が少なくなります。かっこを入力したり、入力文字列を単一引用符で囲んだりする必要はありません。入力は、コンマではなく空白を使用して区切ります。

たとえば、test.mat という名前のファイルを保存する場合、以下のステートメントは等価です。

save test.mat      % command form
save('test.mat')   % function form

前述の構文で説明したいずれかの入力を含めることができます。たとえば、X という名前の変数を保存するには、次のコマンドを入力します。

save test.mat X       % command form
save('test.mat','X')  % function form

filename など、入力のいずれかが変数である場合は、コマンド形式を使用しないでください。

すべて展開する

MAT ファイルへのすべてのワークスペース変数の保存

ワークスペースからすべての変数を、バイナリ MAT ファイル test.mat に保存します。filename が変数である場合は、関数構文を使用しなければなりません。

filename = 'test.mat';
save(filename)

それ以外の場合は、コマンド構文を使用することもできます。

save test.mat

ワークスペースから変数を削除し、関数 load でデータを取得します。

clear
load('test.mat')

MAT ファイルへの特定の変数の保存

pq の 2 つの変数を作成し、pqfile.mat というファイルに保存します。

p = rand(1,10);
q = ones(10);
save('pqfile.mat','p','q')

MATLAB は、現在のフォルダーにあるファイル pqfile.mat に変数を保存します。

コマンド構文を使用して、変数 pq を保存することもできます。

save pqfile.mat p q

ASCII ファイルへのデータの保存

2 つの変数を作成し、ASCII ファイルに保存してからファイルの内容を表示します。

p = rand(1,10);
q = ones(10);
save('pqfile.txt','p','q','-ascii')
type('pqfile.txt')

関数 type は、ファイルの内容を表示します。

または、save の操作のコマンド構文を使用します。

save pqfile.txt p q -ascii

構造体フィールドの個別変数としての保存

ab および c の 3 つのフィールドを含む構造体 s1 を作成します。

s1.a = 12.7;
s1.b = {'abc',[4 5; 6 7]};
s1.c = 'Hello!';

構造体 s1 の各フィールドを、個別の変数として newstruct.mat という名前のファイルに保存します。

save('newstruct.mat','-struct','s1');

関数 whos を使用して、ファイルの内容をチェックします。

disp('Contents of newstruct.mat:')
whos('-file','newstruct.mat')
Contents of newstruct.mat:
  Name      Size            Bytes  Class     Attributes

  a         1x1                 8  double              
  b         1x2               262  cell                
  c         1x6                12  char   

Version 7.3 MAT ファイルへの変数の保存

2 つの変数を作成し、example.mat という version 7.3 MAT ファイルに保存します。

A = rand(5);
B = magic(10);
save('example.mat','A','B','-v7.3')

save の操作のコマンド構文を使用することもできます。

save example.mat A B -v7.3

MAT ファイルへの変数の追加

2 つの変数を MAT ファイルに保存します。次に、3 番目の変数を同じファイルに追加します。

p = rand(1,10);
q = ones(10);
save('test.mat','p','q')

MAT ファイルの内容を表示します。

whos('-file','test.mat')
  Name       Size            Bytes  Class     Attributes

  p          1x10               80  double              
  q         10x10              800  double              

新しい変数 a を作成し、MAT ファイルに追加します。

a = 50;
save('test.mat','a','-append')

MAT ファイルの内容を表示します。

whos('-file','test.mat')
  Name       Size            Bytes  Class     Attributes

  a          1x1                 8  double              
  p          1x10               80  double              
  q         10x10              800  double              

変数 atest.mat に追加されます。前述の変数 pq は上書きされません。

    メモ:   Version 6 MAT ファイルに追加するには、'-v6''-append' の両方を指定します。たとえば、変数 a をファイル test.mat に保存するには、次の関数を呼び出します。

    save('test.mat','a','-v6','-append')

入力引数

すべて展開する

filename - ファイルの名前'matlab.mat' (既定の設定) | 文字列

ファイル名。文字列として指定します。filename を指定しないと、関数 savematlab.mat というファイルに保存します。

filename に拡張子がなく (すなわちピリオドの後に文字列がない)、format の値が -mat (既定値) である場合、MATLAB は .mat を追加します。filename に絶対パスが含まれない場合、MATLAB は現在のフォルダーに保存します。ファイルの書き込み権限をもっていなければなりません。

コマンド形式の save を使用する場合は、入力文字列を単一引用符で囲む必要はありません。ただし、filename にスペースが含まれる場合、引数を単一引用符で囲まなければなりません。たとえば、save 'filename withspace.mat' です。

例: 'myFile.mat'

データ型:char

variables - 保存する変数の名前文字列

保存する変数の名前。1 つまたは複数の文字列として指定します。コマンド形式の save を使用する場合は、入力文字列を単一引用符で囲む必要はありません。variables は次のいずれかの形式になります。

入力 variables の形式保存する変数
var1,...,varN一覧表示された変数を保存します。個別の文字列として指定します。
パターンを一致させるには、ワイルドカード '*' を使用します。たとえば、save('filename.mat','A*') は、ファイル内の A で始まるすべての変数を保存します。
'-regexp',expr1,...,exprN文字列として指定された、「正規表現」に一致する名前をもつ変数のみを保存します。たとえば、save('filename.mat','-regexp','^Mon','^Tues') は、名前が Mon または Tues で始まるファイルの変数だけを保存します。
'-struct',structName structName で指定されたスカラー構造体のフィールドをファイルの個別変数として格納します。たとえば、save('filename.mat','-struct','S') はスカラー構造体 S を保存します。
'-struct',structName,field1,...,fieldN指定されたスカラー構造体の指定されたフィールドをファイルの個別変数として格納します。たとえば、save('filename.mat,'-struct','S','a','b') はフィールド S.aS.b を保存します。
'-struct',structName,'-regexp',expr1,...,exprN文字列として指定された、「正規表現」に一致する名前をもつフィールドのみを格納します。

データ型:char

fmt - ファイル形式'-mat' (既定の設定) | '-ascii' | '-ascii','-tabs' | '-ascii','-double' | '-ascii','-double','-tabs'

ファイル形式。以下のいずれかの文字列として指定します。コマンド形式の save を使用する場合は、save myFile.txt -ascii -tabs のように、入力文字列を単一引用符で囲む必要はありません。

fmt の値ファイル形式
'-mat'

バイナリ MAT ファイル形式

'-ascii'

8 桁の精度のテキスト形式

'-ascii','-tabs'

8 桁の精度のタブ区切りテキスト形式

'-ascii','-double'

16 桁の精度のテキスト形式

'-ascii','-double','-tabs'

16 桁の精度のタブ区切りテキスト形式

MAT ファイルの場合、1 台のマシンに保存され、別のマシンで読み込まれるデータは、異なるマシンの浮動小数点書式によって可能な限りの精度と範囲を維持します。

いずれかのテキスト形式を使用して、MATLAB の数値をテキスト ファイルに保存します。この場合、

  • 各変数は、2 次元の double 配列でなければなりません。

  • 出力には、複素数の実数部のみが含まれます。

  • MATLAB は、各変数からのデータを順番にファイルに書き込みます。関数 load を使用してファイルを読み取ることを計画する場合、すべての変数の列数が同じでなければなりません。関数 load は、ファイルから単一変数を作成します。

テキスト形式を指定し、変数が 2 次元の文字配列である場合、MATLAB は文字を対応する内部 ASCII コードに変換します。たとえば、'abc' はテキスト ファイルで次のように表示されます。

  9.7000000e+001  9.8000000e+001  9.9000000e+001

version - MAT ファイルのバージョン'-v7.3' | '-v7' | '-v6' | '-v4'

MAT ファイルのバージョン。以下のいずれかの文字列として指定します。コマンド形式の save を使用する場合は、入力文字列を単一引用符で囲む必要はありません。

version の値読み込み可能な MATLAB のバージョンサポート機能
'-v7.3'7.3 (R2006b) 以降Version 7.0 の機能、64 ビット システムでの 2 GB 以上のデータ項目のサポート。
'-v7'7.0 (R14) 以降Version 6 の機能、データ圧縮および Unicode® 文字エンコード。Unicode エンコードにより、使用する既定の文字エンコード スキームが異なるシステム間でのファイル共有が可能になります。
'-v6'5 (R8) 以降Version 4 の機能、N 次元配列、セル配列と構造体および 19 文字を超える変数名。
'-v4'all2 次元 double 配列、文字配列、およびスパース配列。

データ項目に、指定されたバージョンでサポートされていない機能が必要になる場合、MATLAB はこれらの項目を保存せずに、警告を表示します。MATLAB ソフトウェアの現在のバージョンより新しいバージョンを指定することはできません。

MAT ファイルの既定バージョンを表示または設定するには、[一般設定] で [MAT ファイルの保存形式] オプションを選択します。

参考

| | | | | |

この情報は役に立ちましたか?