# GNU Octave Wiki

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. GNU Octave is normally used through its interactive interface (CLI and GUI), but it can also be used to write non-interactive programs. The GNU Octave language is quite similar to MATLAB® so that most programs are easily portable.

This wiki is intended to supplement the GNU Octave documentation. Before adding content, please check that it is not already part of, or belongs in, the documentation.

## GNU Octave FAQ

The FAQ is a list of frequently asked questions (FAQ) for GNU Octave users and a good place to start.

Answers to questions regarding what is Octave, licensing, new features, documentation, installation, coding, contributing to Octave, and more, are found there.

## Table of contents

Below is a temporary attempt to organize the "most wanted" pages of the Wiki. A list of all pages on the wiki can be seen here. To locate something specific, try the wiki's search box, or prepend `site:http://www.octave.org/wiki/`

to a google search.

### Installation Instructions for Windows, MacOS X and GNU/Linux

### Building Octave

- Build from source
- Mercurial (hg) cheat sheet
- Testing Source Code
- Octave for MacOS (minimalistic)
- Create a MacOS X App Bundle Using MacPorts
- Building Octave to Use Large Arrays

### Octave-Forge

#### Available Packages

See the Octave Forge website for a complete list.

- Dicom
- Geometry
- I/O
- Java
- Mechanics
- Instrument control
- Sockets
- Video
- fem-fenics Interface to FEnics FEM library
- bim Solve Partial Differential Equaltions with a Finite Element method
- CGI Common Gateway Interface for Octave
- optiminterp Optimal interpolation
- octcdf NetCDF package (old)
- netcdf matlab-compatible NetCDF package
- ncArray High-level interface of accessing a single or a collection of NetCDF files as a multi-dimensional array

### Editors & Octave

- Gedit
- Emacs
- Nano
- Vim
- Kate
- Octclipse (Windows and GNU/Linux only. The Octclipse developers are seeking individuals to assist with MacOS X support.)
- DomainMath IDE (Windows,GNU/Linux and Mac OS.)

### Plotting tutorial

All or most of the information about plotting in Octave can be found in the manual and on the internet. This information can be too scattered over different resources for a new user to find his/her way into solving a plotting problem/need. This tutorial should be considered as the 'recipe text' by examples if you consider the manual as a 'recipe ingredients only'.

- Recap of the hierarchy of each plot element
- The order of the commands matter sometimes
- Changing text elements (label, title)
- More control over subplots
- Enable "linestyle" functionality for Gnuplot's x11 terminal

### Miscellaneous

- Octave Basics - For those just getting started.
- Cookbook - Several simple and useful examples.
- Tips and tricks - Guidelines to improve your coding skills.
- Fortran - Accessing liboctave from a Fortran 2003 program.
- Octave load - Use liboctave functions to load variables from a file in Octave's binary format.
- All Pages - A list of all special pages (like recent changes to the wiki)
- Publications using Octave - A compilation of scientific publications making reference to GNU Octave (add yours!).
- Octave fun - Coding can be fun -- miscellaneous more or less funny scripts
- BASH and Octave - tips for easing use of Octave together with GNU BASH (linux)

### Development

- Development - All information related to development can be found at the category page.

## External Links

- Octave Homepage
- Octave Forge
- GNU Octave - Bug Tracker
- GNU Octave - Task Tracker
- GNU Octave - Patch Tracker
- GNU Octave - Mercurial Repositories
- Planet Octave (site summary for blogs from Octave's GSoC and SoCiS students)