LinuxCommandLibrary

octave

Perform numerical computations and simulations

TLDR

Start an interactive session

$ octave
copy

Execute a specific script file
$ octave [path/to/script.m]
copy

Execute a script file with specific arguments
$ octave [path/to/script.m] [argument1 argument2 ...]
copy

Start an interactive session with a GUI
$ octave --gui
copy

Display help
$ octave --help
copy

Display version
$ octave --version
copy

SYNOPSIS

octave [OPTIONS] [FILE]

PARAMETERS

-q, --quiet
    Suppress the initial Octave banner and copyright message.

-f, --no-init-file
    Prevent Octave from executing the user's ~/.octaverc startup file.

--no-history
    Do not load or save the command history.

--no-gui
    Force Octave to start in the command-line interface (CLI) mode, even if a graphical environment is available.

--gui
    Force Octave to start in graphical user interface (GUI) mode.

-p DIR, --path DIR
    Add the directory DIR to Octave's function search path.

-B, --batch
    Run Octave in batch mode. In this mode, Octave exits after processing input files or evaluating commands.

-x, --exit-on-error
    Exit Octave if an error occurs during execution of a script or command.

--eval CODE
    Evaluate the Octave code string CODE and then exit.

FILE
    A script file to execute. Octave will execute the commands in FILE and then exit (unless --persist is used or in interactive mode).

DESCRIPTION

GNU Octave is a powerful, free, and open-source programming language for numerical computations. It offers a high-level interpreter primarily designed for numerical analysis, scientific computing, and data visualization. Its syntax is largely compatible with MATLAB, making it a popular alternative for engineers, scientists, and students.
Octave supports complex numbers, matrices, and a rich set of built-in functions for linear algebra, Fourier transforms, signal processing, image manipulation, and statistical analysis. It can execute scripts and functions written in its own language, and also supports calling C++, Fortran, and other language code. Users can extend Octave's capabilities through various packages, providing specialized functionalities for different domains. It provides both an interactive command-line interface and a graphical user interface (GUI).

CAVEATS

While highly compatible with MATLAB, some advanced or specialized MATLAB toolboxes might not have direct Octave equivalents or require different syntax.
Performance for very large datasets or extremely complex parallel computations might sometimes differ from highly optimized commercial alternatives.
The graphical user interface (GUI) features might be less mature or feature-rich compared to commercial counterparts, though they are constantly improving.

PACKAGE SYSTEM

Octave features a robust package system, similar to other scripting languages. Users can install and load specialized packages from the Octave Forge repository (e.g., pkg install control, pkg load control) to extend its functionality for specific domains like signal processing, image processing, or symbolic math.

PLOTTING

Octave supports extensive 2D and 3D plotting capabilities, largely compatible with MATLAB's plotting functions. It can use Gnuplot as its default backend, but also supports FLTK and Qt for interactive plots, and OpenGL for advanced 3D graphics.

HISTORY

Development began in 1988 by John W. Eaton. Its first alpha release was in 1993, followed by the first stable release (version 1.0) in February 1994. The project was named after Octave Levenspiel, a professor known for his quick calculations. Octave has since been continually developed and maintained as part of the GNU Project, evolving to include a graphical user interface, enhanced MATLAB compatibility, and a robust package system.

SEE ALSO

matlab, python(1), R(1), jupyter(1)

Copied to clipboard