Main Content

matlab.io.saveVariablesToScript

MATLAB スクリプトへのワークスペース変数の保存

説明

matlab.io.saveVariablesToScript(filename) は、現在のワークスペースの変数を filename.m という名前の MATLAB® スクリプトに保存します。ファイル名には接尾辞 .m を含めることができます。これを含めない場合、関数がファイルを作成する際に追加します。

大きすぎる変数や、MATLAB がコードを生成できない変数は、filename.mat という名前の MAT ファイルに保存されます。

同じ名前のファイルが既に存在する場合、既存のファイルは上書きされます。

matlab.io.saveVariablesToScript(filename,varnames) は、varnames で指定されたワークスペース変数のみを MATLAB スクリプトに保存します。

matlab.io.saveVariablesToScript(filename,Name,Value) は、1 つ以上の Name,Value のペアの引数によって指定された追加オプションを使用します。

[r1,r2] = matlab.io.saveVariablesToScript(filename) は、さらに 2 つの cell 配列を返します。

  • r1: MATLAB スクリプトに保存された変数用

  • r2: MAT ファイルに保存された変数用

すべて折りたたむ

ワークスペースの変数を MATLAB スクリプト (test.m) に保存します。

matlab.io.saveVariablesToScript('test.m')

myVar 変数を作成し、ワークスペースから MATLAB スクリプト (test.m) に変数を保存します。

myVar = 55.3;
matlab.io.saveVariablesToScript('test.m','myVar')

2 つの変数 ab を作成し、既存の MATLAB スクリプト (test.m) に変数を保存します。

a = 72.3;
b = pi;
c = "string1";
matlab.io.saveVariablesToScript('test.m',{'a','b','c'},...
'SaveMode','append')

2 つの変数 ab を更新し、既存の MATLAB スクリプト (test.m) に変数を保存します。

a = 15.7;
b = 3 * pi;
matlab.io.saveVariablesToScript('test.m',{'a','b'},...
'SaveMode','update')

スクリプト ファイルのコンフィギュレーションを指定して、変数 resistance を既存の MATLAB スクリプト (test.m) に保存します。

resistance = [10 20.5 11 13.7];
matlab.io.saveVariablesToScript('test.m','resistance',...
'SaveMode','append','MaximumArraySize',5,...
'MaximumNestingLevel',5,'MaximumTextWidth',35)

2 次元スライスが 1 番目 と 3 番目の次元に沿って展開するように、3 次元配列 my3Dtable の出力に 2 次元スライスを指定します。MATLAB スクリプト (sliceData.m) に 2 次元スライスを保存します。

level1 = [1 2; 3 4];
level2 = [5 6; 7 8];
my3Dtable( :, :, 1) = level1;
my3Dtable( :, :, 2) = level2;
matlab.io.saveVariablesToScript('sliceData.m','MultidimensionalFormat',[1,3])

結果の MATLAB コードは次のようになります。

level1 = ...
  [1 2;
   3 4];

level2 = ...
  [5 6;
   7 8];

my3Dtable = zeros(2, 2, 2);
my3Dtable(:,1,:) = ...
  [1 5;
   3 7];
my3Dtable(:,2,:) = ...
  [2 6;
   4 8];

表現 level* に一致する変数を、新しい MATLAB スクリプト (levelVariables.m) に保存します。

matlab.io.saveVariablesToScript('levelVariables.m','RegExp','level*')

2 つの変数 pq を作成し、Version 7.3 MATLAB スクリプト (version73.m) に変数を保存します。

p = 49;
q = 35.5;
matlab.io.saveVariablesToScript('version73.m',{'p','q'},...
'MATFileVersion','v7.3')

MATLAB スクリプトに保存された変数を変数 r1 に保存し、MAT ファイルに保存された変数を変数 r2 に保存します。

[r1,r2] = matlab.io.saveVariablesToScript('mydata.m')
r1 =

  5×1 cell array

    {'level1'   }
    {'level2'   }
    {'my3Dtable'}
    {'p'        }
    {'q'        }


r2 =

  0×1 empty cell array

入力引数

すべて折りたたむ

変数を保存する MATLAB スクリプトの名前。ファイル名またはファイル名を含む変数を提供する文字列として指定されます。

例: matlab.io.saveVariablesToScript('myVariables.m')

保存する変数の名前。文字列または cell 配列として指定します。

例: {'X','Y','Z'}

データ型: char | cell

名前と値の引数

引数のオプションのペアを Name1=Value1,...,NameN=ValueN として指定します。ここで Name は引数名で、Value は対応する値です。名前と値の引数は他の引数の後になければなりませんが、ペアの順序は重要ではありません。

R2021a より前では、コンマを使用してそれぞれの名前と値を区切り、Name を引用符で囲みます。

例: 'MaximumArraySize',500,'MATFileVersion','v4' は、MATLAB version 4 の構文を使用して、保存する配列要素の最大数を 500 に指定します。

MAT ファイルを保存するために使用する構文の MATLAB バージョン。'MATFileVersion' と次のバージョン番号のいずれかで構成されるコンマ区切りのペアとして指定します。

  • 'v4'

  • 'v6'

  • 'v7'

  • 'v7.3'

例: 'MATFileVersion','v6'

データ型: char

保存する最大配列要素数。'MaximumArraySize' と 1 ~ 10,000 の範囲の整数で構成されるコンマ区切りのペアとして指定します。

例: 'MaximumArraySize',1050

保存するオブジェクト レベルまたは配列階層の最大数。'MaximumNestingLevel' と 1 ~ 200 の範囲の整数で構成されるコンマ区切りのペアとして指定します。

例: 'MaximumNestingLevel',67

保存時のテキスト折り返し幅。'MaximumTextWidth' と 32 ~ 256 の範囲の整数で構成されるコンマ区切りのペアとして指定します。

例: 'MaximumTextWidth',82

char、論理値または数値データの n 次元配列を表す 2 次元スライスの次元。'MultidimensionalFormat' と次の値のいずれかで構成されるコンマ区切りのペアとして指定します。

  • 'rowvector' — 多次元変数を 1 つの行ベクトルとして保存します。

  • integer cell array — 多次元変数の 2 次元スライスを保存します。ここで、次元は次の基準をすべて満たします。

    • 2 つの正の整数が次元を表す。

    • 2 つの整数が、n 次元配列の次元数以下の値である。

    • 2 つ目の整数が 1 つ目より大きい。

例: 'MultidimensionalFormat',[1,3]

マッチングする正規表現。'RegExp' と、文字列として与えられる 1 つ以上の表現で構成されるコンマ区切りのペアとして指定します。

例: 'RegExp','level*'

データ型: char

MATLAB スクリプトを保存するモード。SaveMode と次の値のいずれかで構成されるコンマ区切りのペアとして指定します。

  • 'create' — 新しい MATLAB スクリプトに変数を保存します。

  • 'update' — MATLAB スクリプト内に既に存在する変数のみを更新します。

  • 'append' — MATLAB スクリプト内に既に存在する変数を更新し、スクリプトの終わりに新しい変数を追加します。

例: 'SaveMode','Update'

出力引数

すべて折りたたむ

MATLAB スクリプトに保存された変数。変数名の cell 配列として返されます。

MAT ファイルに保存された変数。変数名の cell 配列として返されます。

制限

  • matlab.io.saveVariablesToScript は、次の変数を MATLAB スクリプトまたは MAT ファイルに保存しません。

    • Java オブジェクト

    • .NET オブジェクト

    • Python オブジェクト

  • matlab.io.saveVariablesToScript は、次の変数を MAT ファイルにのみ保存します。

    • MATLAB オブジェクト

    • 関数ハンドル

    • 無名関数

    • string 配列の欠損値

Simulink® をおもちの場合は、matlab.io.saveVariablesToScript を使用してモデルが使用する変数を保存できます。ただし、多くの変数を保存する場合、生成される MATLAB ファイルに多くの行数にわたるコードが含まれることになり、実行に時間がかかる場合があります。実行時間が長くなるのを避けるため、次の代替方法を検討してください。

  • Simulink.saveVars を使用する代わりにデータ ディクショナリに変数を永続的に保存します。データ ディクショナリでは変数を管理するためのツールがさらに提供されます。Simulink モデルの変数とオブジェクトの保存場所の決定 (Simulink)を参照してください。

  • 関数 save を使用して MAT ファイルに変数を保存します。

バージョン履歴

R2014a で導入