Octave version 0.72 is now available for ftp from ftp.che.utexas.edu
in the directory /pub/octave. Compressed and gzipped tar files are
We are now distributing tar files with binaries included and currently
have versions available for DECstation, SPARCstation, and IBM RS/6000
systems. If you would like to volunteer to make binaries available
for other systems, please contact [hidden email].
Octave's Texinfo documentation is far from complete, but has been
included in this distribution anyway. Comments on the organization
and layout of the manual are welcome, as are any additions and
corrections. If you are interested in working on the manual, please
contact [hidden email].
Here's a summary of other changes for version 0.72:
* For numeric output, columns are now lined up on the decimal point.
(This requires libg++-2.3.1 or later to work correctly).
* If octave is running interactively and the output intended for the
screen is longer than one page and a pager is available, it is
sent to the pager through a pipe. You may specify the program to
use as the pager by setting the variable PAGER. PAGER may also
specify a command pipeline.
* Spaces are not always significant inside square brackets now, so
[ linspace (1, 2) ]
will work. However, some possible sources of confusion remain
because Octave tries (possibly too hard) to determine exactly what
operation is intended from the context surrounding an operator.
-- In the command
[ 1 - 1 ]
the `-' is treated as a binary operator and the result is the
scalar 0, but in the command
[ 1 -1 ]
the `-' is treated as a unary operator and the result is the
vector [ 1 -1 ].
-- In the command
a = 1; [ 1 a' ]
the single quote character `'' is treated as a transpose operator
and the result is the vector [ 1 1 ], but in the command
a = 1; [ 1 a ' ]
an error message indicating an unterminated string constant is
* Assignments are just expressions now, so they are valid anywhere
other expressions are. This means that things like
if (a = n < m) ... endif
are valid. This is parsed as: compare `n < m', assign the result
to the variable `a', and use it as the test expression in the if
To help avoid errors where `=' has been used but `==' was
intended, Octave issues a warning suggesting parenthesis around
assignments used as truth values. You can suppress this warning
by adding parenthesis, or by setting the value of the new builtin
variable `warn_assign_as_truth_value' to 'false' (the default
value is 'true').
This is also true for multiple assignments, so expressions like
[a, b, c] = [u, s, v] = expression
are now possible. If the expression is a function, nargout is set
to the number of arguments for the right-most assignment. The
other assignments need not contain the same number of elements.
Extra left hand side variables in an assignment become undefined.
* The default line style for plots is now `lines' instead of
`points'. To change it, use the `set data style STYLE' command.
* New file handling and I/O functions:
fopen -- open a file for reading or writing
fclose -- close a file
fflush -- flush output to a file
fgets -- read characters from a file
frewind -- set file position to the beginning of a file
fseek -- set file position
ftell -- tell file position
freport -- print a report for all open files
fscanf -- read from a file
sscanf -- read from a string
scanf -- read from the standard input
* New builtin variables for file and I/O functions:
stdin -- file number corresponding to the standard input stream.
stdout -- file number corresponding to the standard output stream.
stderr -- file number corresponding to the standard error stream.
The following may be used as the final (optional) argument for
SEEK_SET -- set position relative to the beginning of the file.
SEEK_CUR -- set position relative to the current position.
SEEK_END -- set position relative to the end of the file.
* New function: setstr -- convert vectors or scalars to strings
(doesn't work for matrices yet).
* If possible, computer now prints the system type instead of
always printing `Hi Dave, I'm a HAL-9000'.
* Octave now properly saves and restores its internal state
correctly in more places. Interrupting Octave while it is
executing a script file no longer causes it to exit.
* Octave now does tilde expansion on each element of the LOADPATH.
* A number of memory leaks have been plugged.
* Dependencies for C++ source files are now generated automatically
* There is a new command line option, -p PATH, that may be used to
set Octave's loadpath from the command line. It will override any
value of OCTAVE_PATH found in the environment, but not any
LOADPATH="path" commands found in the system or user startup files.
* It is now possible to override Octave's default idea of the
location of the system-wide startup file (usually stored in
$(prefix)/lib/octave/octaverc) using the environment variable
OCTAVE_HOME. If OCTAVE_HOME has a value, Octave will look for
octaverc and its M-files in the directory $OCTAVE_HOME/lib/octave.
This allows people who are using binary distributions (as is
common with systems like Linux) to install the real octave binary
in any directory (using a name like octave.bin) and then install
a simple script like this