GNU Octave 9.1.0

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.

Tags mathematics matlab
License GNU GPL
State stable

Recent Releases

9.1.018 Mar 2024 17:25 minor feature:
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.
4.0.029 May 2015 16:25 major feature: A graphical user interface is now the default when running Octave interactively. Octave now uses OpenGL graphics with Qt widgets by default. A new syntax for object oriented programming termed classdef has been introduced. New audio functions and classes. Optional stricter Matlab compatibility for ranges, diagonal matrices, and permutation matrices. The preferences do_braindead_shortcircuit_evaluation, allow_noninteger_range_as_index ares now enabled by default. The "backtrace" warning option is now enabled by default. The nextpow2 function behaviour has been changed for vector inputs. polyeig now returns a row vector of eigenvalues rather than a matrix with the eigenvalues on the diagonal. Interpolation function changes for Matlab compatibility The delaunay function has been extended to accept 3-D inputs. The hyperbolic function acosh now returns values with a phase in the range -pi/2, +pi/2. strfind changes when using empty pattern ("") for Matlab compatibility. Integer formats used in the printf family of functions now work for 64-bit integers. The functions intersect, setdiff, setxor, and union now return a column vector as output unless the input was a row vector. The inpolygon function now returns true for points that are within the polygon OR on it's edge. Qt and FLTK graphics toolkits now support offscreen rendering on Linux. Z-order stacking issues with patches, grid lines, and line object plot markers for on screen display and printing have all been resolved. The patch graphic object has been overhauled. linkprop has been completely re-coded for performance and Matlab compatibility. isprime has been extended to operate on negative and complex inputs. xor has been extended to accept more than two arguments in which case it performs cumulative XOR reduction. The following functions now support N-dimensional arrays: fliplr, flipud, rot90, rectint.
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