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) 使用一个或多个 Name,Value 对组参量指定的其他选项。

示例

[r1,r2] = matlab.io.saveVariablesToScript(filename) 另外返回两个元胞数组:

  • 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')

创建两个变量 ab,并将其保存到现有 MATLAB 脚本 test.m 中。

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

更新两个变量 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)

为三维数组 my3Dtable 的输出指定一个二维切片,以使该二维切片沿第一个和第三个维度扩展。将二维切片保存在 MATLAB 脚本 sliceData.m 中。

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*')

创建两个变量 pq,然后将它们保存到版本 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')

要保存的变量的名称,指定为字符串或元胞数组。

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

数据类型: char | cell

名称-值参数

将可选的参量对组指定为 Name1=Value1,...,NameN=ValueN,其中 Name 是参量名称,Value 是对应的值。名称-值参量必须出现在其他参量之后,但参量对组的顺序无关紧要。

在 R2021a 之前,使用逗号分隔每个名称和值,并用引号将 Name 引起来。

示例: 'MaximumArraySize',500,'MATFileVersion','v4' 使用 MATLAB 版本 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

表示 n 维字符、逻辑或数值数据数组的二维切片的维度,指定为包括 'MultidimensionalFormat' 和以下值之一的逗号分隔对组:

  • 'rowvector' - 将多维变量保存为单行向量。

  • integer cell array - 保存由多维变量构成的二维切片,其中各个维度满足以下所有标准:

    • 两个表示维度的正整数。

    • 两个整数需小于或等于 n 维数组的维度。

    • 第二个整数大于第一个整数。

示例: 'MultidimensionalFormat',[1,3]

用于匹配的正则表达式,指定为包括 'RegExp' 以及一个或多个表达式(以字符串形式给出)的逗号分隔对组。

示例: 'RegExp','level*'

数据类型: char

MATLAB 脚本的保存模式,指定为逗号分隔的对组,包含 SaveMode 和下列值之一:

  • 'create' - 将变量保存到新的 MATLAB 脚本中。

  • 'update' - 仅更新已存在于 MATLAB 脚本中的变量。

  • 'append' - 更新已存在于 MATLAB 脚本中的变量并将新变量追加到脚本的末尾。

示例: 'SaveMode','Update'

输出参量

全部折叠

已保存至 MATLAB 脚本中的变量,以变量名称元胞数组形式返回。

已保存至 MAT 文件中的变量,以变量名称元胞数组形式返回。

局限性

  • matlab.io.saveVariablesToScript 不将以下变量保存至 MATLAB 脚本或 MAT 文件中。

    • Java 对象

    • .NET 对象

    • Python 对象

  • matlab.io.saveVariablesToScript 仅将以下变量保存至 MAT 文件中。

    • MATLAB 对象

    • 函数句柄

    • 匿名函数

    • 字符串数组中的缺失值

如果您拥有 Simulink®,则可以使用 matlab.io.saveVariablesToScript 保存您的模型使用的变量。但是,如果您保存很多变量,则生成的 MATLAB 文件可能包含很多行代码,因此需要很长时间来执行。为了避免执行时间过长,请考虑使用以下替代方法:

版本历史记录

在 R2014a 中推出