save
Save workspace variables to file
Syntax
save(filename,variables,version)
save(filename,variables,version,'-nocompression')
save(filename,variables,'-append')
save(filename,variables,'-append','-nocompression')
Description
save(
saves all variables from the current workspace in a MATLAB® formatted binary file (MAT-file) called filename
)filename
. If filename
exists, save
overwrites the file.
save(
saves only the variables or fields of a structure array specified by filename
,variables
)variables
.
save(
saves in the file format specified by filename
,variables
,fmt
)fmt
. The variables
argument is optional. If you do not specify variables
, the save
function saves all variables in the workspace.
save(
saves to the MAT-file version specified by filename
,variables
,version
)version
. The variables
argument is optional.
save(
saves the variables to the MAT-file without compression. The filename
,variables
,version
,'-nocompression')'-nocompression'
flag only supports MAT-file Version 7 (default) and Version 7.3. Therefore, you must specify version
as '-v7'
or '-v7.3'
. The variables
argument is optional.
save(
adds new variables to an existing file. If a variable already exists in a MAT-file, then filename
,variables
,'-append')save
overwrites it with the value in the workspace.
For ASCII files, '-append'
adds data to the end of the file.
To append to a Version 6 MAT-file, you must also include '-v6'
as an input argument.
save(
adds new variables to an existing file without compression. The existing file must be a MAT-file Version 7 (default) or 7.3.filename
,variables
,'-append','-nocompression')
save
is the command form of the syntax. Command form requires fewer special characters. You do not need to type parentheses or enclose the input in single or double quotes. Separate inputs with spaces instead of commas.filename
For example, to save a file named test.mat
, these statements are equivalent:
save test.mat % command form save('test.mat') % function form
You can include any of the inputs described in previous syntaxes. For example, to save the variable named X
:
save test.mat X % command form save('test.mat','X') % function form
Do not use command form when any of the inputs, such as filename
, are variables or strings.
Examples
collapse all
Save All Workspace Variables to MAT-File
Save all variables from the workspace in a binary MAT-file, test.mat
. If filename
is a variable, use function syntax.
filename = 'test.mat'; save(filename)
Otherwise, you also can use command syntax.
save test.mat
Remove the variables from the workspace, and then retrieve the data with the load
function.
clear load('test.mat')
Save Specific Variables to MAT-File
Try This Example
View MATLAB Command
Create and save two variables, p
and q
, to a file called pqfile.mat
.
p = rand(1,10); q = ones(10); save('pqfile.mat','p','q')
MATLAB® saves the variables to the file, pqfile.mat
, in the current folder.
You also can use command syntax to save the variables, p
and q
.
save pqfile.mat p q
Save Data to ASCII File
Create two variables, save them to an ASCII file, and then view the contents of the file.
p = rand(1,10); q = ones(10); save('pqfile.txt','p','q','-ascii') type('pqfile.txt')
The type
function displays the contents of the file.
Alternatively, use command syntax for the save
operation.
save pqfile.txt p q -ascii
Save Structure Fields as Individual Variables
Try This Example
View MATLAB Command
Create a structure, s1
, that contains three fields, a
, b
, and c
.
s1.a = 12.7; s1.b = {'abc',[4 5; 6 7]}; s1.c = 'Hello!';
Save the fields of structure s1
as individual variables in a file called newstruct.mat
.
save('newstruct.mat','-struct','s1');
Check the contents of the file using the whos
function.
disp('Contents of newstruct.mat:')
Contents of newstruct.mat:
whos('-file','newstruct.mat')
Name Size Bytes Class Attributes a 1x1 8 double b 1x2 246 cell c 1x6 12 char
Save Variables to Version 7.3 MAT-File
Create two variables and save them to a Version 7.3 MAT-file called example.mat
.
A = rand(5); B = magic(10); save('example.mat','A','B','-v7.3')
You also can use command syntax for the save
operation.
save example.mat A B -v7.3
Save Variables to MAT-File Without Compression
Try This Example
View MATLAB Command
Create two variables and save them, without compression, to a Version 7
or 7.3
MAT-file called myFile.mat
.
A = rand(5); B = magic(10); save('myFile.mat','A','B','-v7.3','-nocompression')
Alternatively, use the command syntax for the save
operation.
save myFile.mat A B -v7.3 -nocompression
The '-nocompression'
flag facilitates a faster save for those variables that are larger than 2
GB or those that do not benefit from compression.
Append Variable to MAT-File
Save two variables to a MAT-file. Then, append a third variable to the same file.
p = rand(1,10); q = ones(10); save('test.mat','p','q')
View the contents of the MAT-file.
whos('-file','test.mat')
Name Size Bytes Class Attributes p 1x10 80 double q 10x10 800 double
Create a new variable, a
, and append it to the MAT-file.
a = 50; save('test.mat','a','-append')
View the contents of the MAT-file.
whos('-file','test.mat')
Name Size Bytes Class Attributes a 1x1 8 double p 1x10 80 double q 10x10 800 double
The variable, a
, is appended to test.mat
, without overwriting the previous variables, p
and q
.
Note
To append to a Version 6 MAT-file, specify both '-v6'
and '-append'
. For example, to save variable a
to the file, test.mat
, call:
save('test.mat','a','-v6','-append')
Append Variable to MAT-File Without Compression
Try This Example
View MATLAB Command
Save two variables to a MAT-file. Then, append a third variable, without compression, to the same file.
Create two variables A
and B
and save them to a MAT-file Version 7
or 7.3
. By default, the save
function compresses variables A
and B
before saving them to myFile.mat
.
A = rand(5); B = magic(10); save('myFile.mat','A','B','-v7.3')
View the contents of the MAT-file.
whos('-file','myFile.mat')
Name Size Bytes Class Attributes A 5x5 200 double B 10x10 800 double
Create a new variable C
and append it, without compression, to myFile.mat
.
C = 5; save('myFile.mat','C','-append','-nocompression')
View the contents of the MAT-file.
whos('-file','myFile.mat')
Name Size Bytes Class Attributes A 5x5 200 double B 10x10 800 double C 1x1 8 double
Input Arguments
collapse all
filename
— Name of file
'matlab.mat'
(default) | character vector | string scalar
Name of file, specified as a character vector or string scalar. If you do not specify filename
, the save
function saves to a file named matlab.mat
.
If filename
has no extension (that is, no period followed by text), and the value of format
is not specified, then MATLAB appends .mat
. If filename
does not include a full path, MATLAB saves to the current folder. You must have permission to write to the file.
When using the command form of save
, it is unnecessary to enclose the input in single quotes. However, if filename
contains a space, you must enclose the argument in single quotes. For example, save 'filename withspace.mat'
.
Note
Do not use command form when filename
is a string.
Example: 'myFile.mat'
variables
— Names of variables to save
character vector | string scalar
Names of variables to save, specified as character vectors or string scalars. When using the command form of save
, you do not need to enclose the input in single quotes.
Note
Do not use command form when variables
is a string.
variables
can be in one of the following forms.
Form of variables Input | Variables to Save |
---|---|
var1,...,varN | Save the listed variables, specified as individual character vectors or strings. Use the '*' wildcard to match patterns. For example, save('filename.mat','A*') saves all variables in the file that start with A . |
'-regexp', | Save only the variables whose names match the regular expressions, specified as character vectors or strings. For example, save('filename.mat','-regexp','^Mon','^Tues') saves only the variables in the file whose names begin with Mon or Tues . |
'-struct', | Store the fields of the scalar structure specified by structName as individual variables in the file. For example, save('filename.mat','-struct','S') saves the scalar structure, S . |
'-struct', | Store the specified fields of the specified scalar structure as individual variables in the file. For example, save('filename.mat','-struct','S','a','b') saves the fields S.a and S.b . |
'-struct', | Store only the fields whose names match the regular expressions, specified as character vectors or strings. |
fmt
— File format
'-mat'
(default) | '-ascii'
| '-ascii','-tabs'
| '-ascii','-double'
| '-ascii','-double','-tabs'
File format, specified as one of the following. When using the command form of save
, you do not need to enclose the input in single or double quotes, for example, save myFile.txt -ascii -tabs
.
Value of fmt | File Format |
---|---|
'-mat' | Binary MAT-file format. |
'-ascii' | Text format with 8 digits of precision. |
'-ascii','-tabs' | Tab-delimited text format with 8 digits of precision. |
'-ascii','-double' | Text format with 16 digits of precision. |
'-ascii','-double','-tabs' | Tab-delimited text format with 16 digits of precision. |
For MAT-files, data saved on one machine and loaded on another machine retains as much accuracy and range as the different machine floating-point formats allow.
Use one of the text formats to save MATLAB numeric values to text files. In this case:
-
Each variable must be a two-dimensional
double
array. -
The output includes only the real component of complex numbers.
-
MATLAB writes data from each variable sequentially to the file. If you plan to use the
load
function to read the file, all variables must have the same number of columns. Theload
function creates a single variable from the file.
If you specify a text format and any variable is a two-dimensional character array, then MATLAB translates characters to their corresponding internal ASCII codes. For example, 'abc'
appears in a text file as:
9.7000000e+001 9.8000000e+001 9.9000000e+001
Data Types: char
| string
version
— MAT-file version
'-v7'
(default) | '-v7.3'
| '-v6'
| '-v4'
MAT-file version, specified as one of the following. When using the command form of save
, you do not need to enclose the input in single or double quotes.
Value of version | Loads in MATLAB Versions | Supported Features | Compression | Maximum Size of Each Variable |
---|---|---|---|---|
'-v7.3' | 7.3 (R2006b) or later | Saving and loading parts of variables, and all Version 7 features. Version 7.3 also supports saving variables without compression using the | Yes (default) | ≥ 2 GB on 64-bit computers |
'-v7' | 7.0 (R14) or later | Unicode® character encoding, which enables file sharing between systems that use different default character encoding schemes, and all Version 6 features. Version 7 also supports saving variables without compression using the | Yes (default) | 2^31 bytes per variable |
'-v6' | 5 (R8) or later | N-dimensional arrays, cell arrays, structure arrays, variable names longer than 19 characters, and all Version 4 features. | No | 2^31 bytes per variable |
'-v4' | All | Two-dimensional | No | 100,000,000 elements per array, and 2^31 bytes per variable |
If any data items require features that the specified version does not support, MATLAB does not save those items and issues a warning. You cannot specify a version later than your current version of MATLAB software.
Note
Version 7.3 MAT-files use an HDF5 based format that requires some overhead storage to describe the contents of the file. For cell arrays, structure arrays, or other containers that can store heterogeneous data types, Version 7.3 MAT-files are sometimes larger than Version 7 MAT-files.
To view or set the default version for MAT-files, go to the Home tab and in the Environment section, click Preferences. Select MATLAB > General > MAT-Files and then choose a MAT-file save format option.
Data Types: char
| string
Tips
-
For more flexibility in creating ASCII files, use
dlmwrite
orfprintf
. -
Saving graphics objects with the
save
function can result in a large file since the file contains all the information required to regenerate the object. -
Avoid saving figures with the
save
function. Use thesavefig
function instead. Usingsave
to save a figure in R2014b or later makes MAT-file inaccessible in earlier versions of MATLAB. If you usesave
to save a figure, then the function displays a warning message. Delete any figures before usingsave
. Keep in mind that the figures might not be directly in your workspace. For example, they might be stored in a structure or in the workspace of a callback function.
See Also
clear
| hgsave
| load
| matfile
| regexp
| saveas
| whos
Topics
- Create and Edit Variables
- Save and Load Workspace Variables
- Write Data to Text Files
- Regular Expressions
Introduced before R2006a