将工作区变量保存到文件中
全页折叠
语法
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 参数为可选参数。如果您不指定 variables,save 函数将保存工作区中的所有变量。
示例
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 formsave('test.mat') % function form
您可以包括先前语法中介绍的任何输入。例如,要保存名为 X 的变量:
save test.mat X % command formsave('test.mat','X') % function form
当有任何输入(例如 filename)为变量或字符串时,请不要使用命令格式。
示例
全部折叠
将所有工作区变量保存到 MAT 文件
将工作区中的所有变量保存在二进制 MAT 文件 test.mat 中。如果 filename 为变量,则使用函数语法。
filename = 'test.mat';save(filename)
或者,您也可使用命令语法。
save test.mat
从工作区中删除变量并通过 load 函数获取数据。
clearload('test.mat')
将特定变量保存到 MAT 文件
尝试此示例
View MATLAB Command
创建两个变量 p 和 q 并将其保存到名为 pqfile.mat 的文件中。
p = rand(1,10);q = ones(10);save('pqfile.mat','p','q')
MATLAB® 将这些变量保存到当前文件夹中的文件 pqfile.mat 中。
您也可使用命令语法保存变量 p 和 q。
save pqfile.mat p q
将数据保存到 ASCII 文件
创建两个变量,将其保存到 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
将结构体字段保存为单个变量
尝试此示例
View MATLAB Command
创建一个包含三个字段 a、b 和 c 的结构体 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:')
Contents of newstruct.mat:
whos('-file','newstruct.mat')
Name Size Bytes Class Attributes a 1x1 8 double b 1x2 262 cell c 1x6 12 char
将变量保存到 7.3 版的 MAT 文件中
创建两个变量并将其保存到名为 example.mat 的 7.3 版的 MAT 文件中。
A = rand(5);B = magic(10);save('example.mat','A','B','-v7.3')
也可使用 save 操作的命令语法。
save example.mat A B -v7.3
将变量保存到 7.3 版的 MAT 文件中,而不进行压缩
View MATLAB Command
创建两个变量并将其保存到名为 myFile.mat 的 7.3 版的 MAT 文件中,而不进行压缩。
A = rand(5);B = magic(10);save('myFile.mat','A','B','-v7.3','-nocompression')
或者,使用 save 操作的命令语法。
save myFile.mat A B -v7.3 -nocompression
'-nocompression' 标志有助于更快地保存那些大于 2 GB 或者不会从压缩中受益的变量。
将变量追加到 MAT 文件中
将两个变量保存到 MAT 文件中。然后,将第三个变量追加到同一文件中。
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
变量 a 将追加到 test.mat,而不会覆盖以前的变量 p 和 q。
注意
要追加到版本 6 的 MAT 文件中,请同时指定 '-v6' 和 '-append'。例如,要将变量 a 保存到文件 test.mat 中,请调用:
save('test.mat','a','-v6','-append')
将变量追加到 MAT 文件中而不进行压缩
View MATLAB Command
将两个变量保存到 MAT 文件中。然后,将第三个变量(不进行压缩)追加到同一文件中。
创建两个变量 A 和 B,然后将它们保存到 7.3 版的 MAT 文件中。默认情况下,save 函数会压缩变量 A 和 B 并将其保存到 myFile.mat 中。
A = rand(5);B = magic(10);save('myFile.mat','A','B','-v7.3')
查看 MAT 文件的内容。
whos('-file','myFile.mat')
Name Size Bytes Class Attributes A 5x5 200 double B 10x10 800 double
创建新变量 C,并将其附加到 myFile.mat,而不进行压缩。
C = 5;save('myFile.mat','C','-append','-nocompression')
查看 MAT 文件的内容。
whos('-file','myFile.mat')
Name Size Bytes Class Attributes A 5x5 200 double B 10x10 800 double C 1x1 8 double