1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121
|
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
<HTML>
<HEAD>
<TITLE>SAVE Save Variables To A File
</TITLE>
</HEAD>
<BODY>
<H2>SAVE Save Variables To A File
</H2>
<P>
Section: <A HREF=sec_io.html> Input/Ouput Functions </A>
<H3>Usage</H3>
Saves a set of variables to a file in a machine independent format.
There are two formats for the function call. The first is the explicit
form, in which a list of variables are provided to write to the file:
<PRE>
save filename a1 a2 ...
</PRE>
<P>
In the second form,
<PRE>
save filename
</PRE>
<P>
all variables in the current context are written to the file. The
format of the file is a simple binary encoding (raw) of the data
with enough information to restore the variables with the <code>load</code>
command. The endianness of the machine is encoded in the file, and
the resulting file should be portable between machines of similar
types (in particular, machines that support IEEE floating point
representation).
You can also specify both the filename as a string, in which case
you also have to specify the names of the variables to save. In
particular
<PRE>
save('filename','a1','a2')
</PRE>
<P>
will save variables <code>a1</code> and <code>a2</code> to the file.
Starting with version 2.0, FreeMat can also read and write MAT
files (the file format used by MATLAB) thanks to substantial
work by Thomas Beutlich. Support for MAT files in version 2.1
has improved over previous versions. In particular, classes
should be saved properly, as well as a broader range of sparse
matrices. Compression is supported for both reading and writing
to MAT files. MAT file support is still in the alpha stages, so
please be cautious with using it to store critical
data. The file format is triggered
by the extension. To save files with a MAT format, simply
use a filename with a ".mat" ending.
The <code>save</code> function also supports ASCII output. This is a very limited
form of the save command - it can only save numeric arrays that are
2-dimensional. This form of the <code>save</code> command is triggered using
<PRE>
save -ascii filename var1 var 2
</PRE>
<P>
although where <code>-ascii</code> appears on the command line is arbitrary (provided
it comes after the <code>save</code> command, of course). Be default, the <code>save</code>
command uses an 8-digit exponential format notation to save the values to
the file. You can specify that you want 16-digits using the
<PRE>
save -ascii -double filename var1 var2
</PRE>
<P>
form of the command. Also, by default, <code>save</code> uses spaces as the
delimiters between the entries in the matrix. If you want tabs instead,
you can use
<PRE>
save -ascii -tabs filename var1 var2
</PRE>
<P>
(you can also use both the <code>-tabs</code> and <code>-double</code> flags simultaneously).
Finally, you can specify that <code>save</code> should only save variables that
match a particular regular expression. Any of the above forms can be
combined with the <code>-regexp</code> flag:
<PRE>
save filename -regexp pattern1 pattern2
</PRE>
<P>
in which case variables that match any of the patterns will be saved.
<H3>Example</H3>
Here is a simple example of <code>save</code>/<code>load</code>. First, we save some
variables to a file.
<PRE>
--> D = {1,5,'hello'};
--> s = 'test string';
--> x = randn(512,1);
--> z = zeros(512);
--> who
Variable Name Type Flags Size
D cell [1 3]
s char [1 11]
x double [512 1]
z double [512 512]
--> save loadsave.dat
</PRE>
<P>
Next, we clear the variables, and then load them back from the file.
<PRE>
--> clear D s x z
--> who
Variable Name Type Flags Size
ans double [0 0]
--> load loadsave.dat
--> who
Variable Name Type Flags Size
D cell [1 3]
ans double [0 0]
s char [1 11]
x double [512 1]
z double [512 512]
</PRE>
<P>
</BODY>
</HTML>
|