save
将工作区变量保存到文件中
语法
save(filename)
save(filename,variables)
save(filename,variables,fmt)
save(filename,variables,version)
save(filename,variables,version,'-nocompression')
save(filename,variables,'-append')
save(filename,variables,'-append','-nocompression')
save filename
说明
save(
将当前工作区中的所有变量保存在 MATLAB® 格式的二进制文件(MAT 文件)filename
)filename
中。如果 filename
已存在,save
会覆盖该文件。
save(
仅保存 filename
,variables
)variables
指定的结构体数组的变量或字段。
save(
以 filename
,variables
,fmt
)fmt
指定的文件格式保存。variables
参数为可选参数。如果您不指定 variables
,save
函数将保存工作区中的所有变量。
save(
保存为 filename
,variables
,version
)version
指定的 MAT 文件版本。variables
参数为可选参数。
save(
将变量保存到 MAT 文件,而不压缩。filename
,variables
,version
,'-nocompression')'-nocompression'
标志仅支持 7.3 版的 MAT 文件。因此,您必须将 version
指定为 '-v7.3'
。variables
参数为可选参数。
save(
将新变量添加到一个现有文件中。如果 MAT 文件中已经存在变量,则 filename
,variables
,'-append')save
会使用工作区中的值覆盖它。
对于 ASCII 文件,'-append'
会将数据添加到文件末尾。
要追加到版本 6 的 MAT 文件,您还必须包括 '-v6'
作为输入参数。
save(
将新变量添加到一个现有文件中,而不进行压缩。现有文件必须是 7.3 版的 MAT 文件。filename
,variables
,'-append','-nocompression')
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
)为变量时使用命令格式。
输入参数
filename - 文件名字
'matlab.mat'
(默认) | 字符向量 | 字符串
文件的名称,指定为字符向量或字符串。如果您未指定 filename
,save
函数保存为名为 matlab.mat
的文件。
如果 filename
没有扩展名(即没有点以及紧随其后的文本),并且没有指定 format
的值,则 MATLAB 会追加 .mat
。如果 filename
不包含完整路径,MATLAB 将保存到当前文件夹中。您必须具有文件的写入权限。
使用命令形式的 save
时,不需要将输入括在单引号或双引号内。但如果 filename
包含空格,则您必须将参数括在单引号中。例如,save 'filename withspace.mat'
。
示例: 'myFile.mat'
数据类型: char
| string
variables - 要保持的变量名称
字符向量 | 字符串
要保存的变量的名称,指定为一个或多个字符向量或字符串。使用命令形式的 save
时,不需要将输入括在单引号或双引号内。variables
可以采用下列形式之一。
variables 输入的格式 | 要保存的变量 |
---|---|
var1,...,varN | 保存列出的变量,指定为单个字符向量或字符串。 可使用 '*' 通配符来匹配模式。例如,save('filename.mat','A*') 会将以 A 开头的所有变量保存到文件中。 |
'-regexp', | 仅保存名称与正则表达式匹配的变量,指定为字符向量或字符串。例如,save('filename.mat','-regexp','^Mon','^Tues') 仅将以 Mon 或 Tues 开头的变量保存到文件中。 |
'-struct', | 将 structName 指定的标量结构体的字段作为单个变量存储在文件中。例如,save('filename.mat','-struct','S') 保存标量结构体 S 。 |
'-struct', | 将指定标量结构体的指定字段作为单个变量存储在文件中。例如,save('filename.mat,'-struct','S','a','b') 保存字段 S.a 和 S.b 。 |
'-struct', | 仅存储名称与正则表达式匹配的字段,指定为字符向量或字符串。 |
数据类型: char
| string
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 文件,如果数据保存在一台计算机上,然后在另一台计算机上加载,则会根据不同计算机上的浮点格式在最大程度上保留精度和范围。
使用其中一种文本格式将 MATLAB 数值保存为文本文件。在这种情况下:
-
每个变量都必须是二维
double
数组。 -
输出项仅包含复数的实部。
-
MATLAB 将每个变量的数据按顺序写入到文件中。如果您计划使用
load
函数读取该文件,所有变量都必须具有相同的列数。load
函数从文件中创建单个变量。
如果您指定一种文本格式且任一变量为二维字符数组,则 MATLAB 将字符转换为其对应的内部 ASCII 代码。例如,'abc'
在文本文件中显示为:
9.7000000e+001 9.8000000e+001 9.9000000e+001
数据类型: char
| string
version - MAT文件版本
'-v7.3'
| '-v7'
| '-v6'
| '-v4'
MAT 文件版本,指定为下列值之一。使用命令形式的 save
时,您无需将输入括在单引号或双引号中。
version 的值 | 加载到的 MATLAB 版本 | 支持功能 | 压缩 | 每个变量大小的最大值 |
---|---|---|---|---|
'-v7.3' | 7.3 (R2006b) 或更高版本 | 保存并加载部分变量,以及版本 7 的所有功能。版本 7.3 还支持使用 | 是(默认值) | ≥ 2 GB(64 位计算机) |
'-v7' | 7.0 (R14) 或更高版本 | Unicode® 字符编码。通过编码,可以在使用不同默认字符编码方案的系统之间共享文件,还可以使用版本 6 的所有功能。 | 是 | 每变量 2^31 字节 |
'-v6' | 5 (R8) 或更高版本 | N 维数组、元胞数组、结构体数组、大于 19 个字符的变量名称,以及版本 4 的所有功能。 | 否 | 每变量 2^31 字节 |
'-v4' | 全部 | 二维 | 否 | 每数组 100,000,000 个元素,每变量 2^31 字节 |
如果任何数据项要求了某些功能,而指定的版本不支持这些功能,MATLAB 将不保存这些项并发出警告。您指定的 MATLAB 软件版本不能高于当前使用的版本。
要查看或设置 MAT 文件的默认版本,请在“常规”预设中选择 MAT 文件保存格式选项。
提示
-
使用
save
函数保存图形对象可能导致文件较大,因为该文件包含重新生成对象需要的所有信息。 -
请避免使用
save
函数保存图窗。改用savefig
函数。在 R2014b 或更高版本中使用save
保存图窗将使所得的 MAT 文件在早期 MATLAB 版本中无法访问。如果您使用save
保存图窗,则函数会显示一个警告消息。在使用save
之前删除所有图窗。请牢记图窗可能不直接存在于您的工作区中。例如,它们可能存储在结构体中或回调函数的工作区中。
文章转载源:MATLAB文档save