MATLAB的save用法

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(filename) 将当前工作区中的所有变量保存在 MATLAB® 格式的二进制文件(MAT 文件)filename中。如果 filename 已存在,save 会覆盖该文件。


save(filename,variables) 仅保存 variables 指定的结构体数组的变量或字段。


save(filename,variables,fmt) 以 fmt 指定的文件格式保存。variables 参数为可选参数。如果您不指定 variablessave 函数将保存工作区中的所有变量。


save(filename,variables,version) 保存为 version 指定的 MAT 文件版本。variables 参数为可选参数。


save(filename,variables,version,'-nocompression') 将变量保存到 MAT 文件,而不压缩。'-nocompression' 标志仅支持 7.3 版的 MAT 文件。因此,您必须将 version 指定为 '-v7.3'variables参数为可选参数。


save(filename,variables,'-append') 将新变量添加到一个现有文件中。如果 MAT 文件中已经存在变量,则 save 会使用工作区中的值覆盖它。

对于 ASCII 文件,'-append' 会将数据添加到文件末尾。

要追加到版本 6 的 MAT 文件,您还必须包括 '-v6' 作为输入参数。


save(filename,variables,'-append','-nocompression') 将新变量添加到一个现有文件中,而不进行压缩。现有文件必须是 7.3 版的 MAT 文件。


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' (默认) | 字符向量 | 字符串


文件的名称,指定为字符向量或字符串。如果您未指定 filenamesave 函数保存为名为 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',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.a 和 S.b
'-struct',structName,'-regexp',expr1,...,exprN

仅存储名称与正则表达式匹配的字段,指定为字符向量或字符串。

数据类型: 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 还支持使用 '-nocompression' 选项保存变量而不进行压缩。

是(默认值)≥ 2 GB(64 位计算机)
'-v7'7.0 (R14) 或更高版本

Unicode® 字符编码。通过编码,可以在使用不同默认字符编码方案的系统之间共享文件,还可以使用版本 6 的所有功能。

每变量 2^31 字节
'-v6'5 (R8) 或更高版本

N 维数组、元胞数组、结构体数组、大于 19 个字符的变量名称,以及版本 4 的所有功能。

每变量 2^31 字节
'-v4'全部

二维 double、字符和稀疏数组。

每数组 100,000,000 个元素,每变量 2^31 字节

如果任何数据项要求了某些功能,而指定的版本不支持这些功能,MATLAB 将不保存这些项并发出警告。您指定的 MATLAB 软件版本不能高于当前使用的版本。

要查看或设置 MAT 文件的默认版本,请在“常规”预设中选择 MAT 文件保存格式选项。

提示


  • 为更加灵活地创建 ASCII 文件,可使用 dlmwrite 或 fprintf

  • 使用 save 函数保存图形对象可能导致文件较大,因为该文件包含重新生成对象需要的所有信息。

  • 请避免使用 save 函数保存图窗。改用 savefig 函数。在 R2014b 或更高版本中使用 save 保存图窗将使所得的 MAT 文件在早期 MATLAB 版本中无法访问。如果您使用 save 保存图窗,则函数会显示一个警告消息。在使用 save 之前删除所有图窗。请牢记图窗可能不直接存在于您的工作区中。例如,它们可能存储在结构体中或回调函数的工作区中。

 

文章转载源:MATLAB文档save

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值