GNU Octave is a high-level interpreted language, primarily intended for numerical computations. It provides capabilities for the numerical solution of linear and nonlinear problems, and for performing other numerical experiments. It also provides extensive graphics capabilities for data visualization and manipulation. Octave is normally used through its interactive command line interface, but it can also be used to write non-interactive programs. The Octave language is quite similar to Matlab so that most programs are easily portable.

Homepage
Download

#### Recent Releases

8.4.013 Nov 2023 14:31
**major feature:**
https://octave.org/news/release/2023/11/05/octave-8.4.0-released.html

5.1.004 Mar 2019 14:00
**major feature:**
This major release improves compatibility with Matlab and contains many new and improved functions.
The Octave plotting system now supports high resolution screens, i.e., those with greater than 96 DPI which are referred to as HiDPI/Retina monitors.
Unicode character support for files and folders in Windows.
A new core function movfun will apply a function to a sliding window of arbitrary size on a dataset and accumulate the results. New moving window functions: movfun movslice movmad movmax movmean movmedian movmin movprod movstd movsum movvar.
The fsolve function has been tweaked to use larger step sizes when calculating the Jacobian of a function with finite differences. This leads to faster convergence.
The ranks function has been recoded for performance and is now 25X faster. In addition, it now supports a third argument that specifies how to resolve the ranking of tie values.
The function randi has been recoded to produce an unbiased (all results are equally likely) sample of integers.
The function isdefinite now returns true or false rather than -1, 0, or 1. To test for a positive semi-definite matrix (old output of 0) check whether the following two conditions hold:
isdefinite (A) = 0 and isdefinite (A + 5*TOL, TOL) = 1
The intmax, intmin, and flintmax functions now accept a variable as input.
The determination of an object s dimensions, size, and shape by the functions ndims, rows, columns, isscalar, isvector, isrow, iscolumn, ismatrix, and issquare now fully depends on the function size. Thus, any user-defined object can ensure correct treatment by the aforementioned functions by properly overloading the size function.
The functions issymmetric and ishermitian accept an option "nonskew" or "skew" to calculate the symmetric or skew-symmetric property of a matrix. Performance has also been increased.
The issorted function now uses a direction option of "ascend" or "descend".

4.4.010 May 2018 23:53
**major feature:**
This major release improves compatibility with Matlab and contains many new and improved functions. A list of important user-visible changes is available by selecting the Release Notes item in the News menu of the GUI or by typing news at the Octave command prompt.

3.8.213 Aug 2014 20:17
**minor bugfix:**
This release adds multiple bugfixes. It also improves the accuracy of range/scalar arithmetic, uses the gnulib log2 modules, allows loading mat5 files generated from R and Python.

3.8.127 Jul 2014 12:58
**minor bugfix:**
Minor Bugfixes