GNU Octave - Language for Numerical Computations

  •        903

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 Forge is a place for development of its packages; from bioinformatics and fuzzy logic to mechanics and instrument control.



Related Projects

Freemat - A Matlab alternative

  •    C++

FreeMat is a free environment for rapid engineering and scientific prototyping and data processing. It is similar to commercial systems such as MATLAB and IDL. It has built in arithmetic for manipulation of all supported data types, N-dimensional array manipulation, 2D and 3D plotting and image display, Visualization, Image manipulation, and as well as parallel programming.

owl - Owl is an OCaml library for scientific and engineering computing.

  •    OCaml

Owl is an emerging numerical library for scientific computing and engineering. The library is developed in the OCaml language and inherits all its powerful features such as static type checking, powerful module system, and superior runtime efficiency. Owl allows you to write succinct type-safe numerical applications in functional language without sacrificing performance, significantly reduces the cost from prototype to production use. Owl's documentation contains a lot of learning materials to help you start. The full documentation consists of two parts: Tutorial Book and API Reference. Both are perfectly synchronised with the code in the repository by the automatic building system. You can access both parts with the following link.

calcflow - A virtual reality tool for mathematical modeling!

  •    Common

Today, the most common tool for complex maths visualization in the classroom is the TI-84+. Scientists, researchers, and other professionals who implement calculus in their work may rely on more complex toolkits like MATLAB. Though these tools offer broader functionality, they are similarly if not more unintuitive than their handheld counterparts. Visualization plays a crucial role in understanding, mastering, and improving upon mathematical concepts, but today's standard interfaces frustrate and alienate many individuals, creating an excessively high barrier of entry to higher level math studies. Calcflow shatters this interfacial bottleneck by enabling users to interact directly with complex equations in physical space. Users can manipulate inputs and parameters and observe changes to 3D visualizations in realtime.


  •    C

Freemat is an interpreted, matrix-oriented development environment for engineering and scientific applications, similar to the commercial package MATLAB. Freemat provides visualization, image manipulation, and plotting as well as parallel programming.

pmtk3 - Probabilistic Modeling Toolkit for Matlab/Octave.

  •    HTML

PMTK is a collection of Matlab/Octave functions, written by Matt Dunham, Kevin Murphy and various other people. The toolkit is primarily designed to accompany Kevin Murphy's textbook Machine learning: a probabilistic perspective, but can also be used independently of this book. The goal is to provide a unified conceptual and software framework encompassing machine learning, graphical models, and Bayesian statistics (hence the logo). (Some methods from frequentist statistics, such as cross validation, are also supported.) Since December 2011, the toolbox is in maintenance mode, meaning that bugs will be fixed, but no new features will be added (at least not by Kevin or Matt). PMTK builds on top of several existing packages, available from pmtksupport, and provides a unified interface to them. In addition, it provides readable "reference" implementations of many common machine learning techniques. The vast majority of the code is written in Matlab. (For a brief discussion of why we chose Matlab, click here. Most of the code also runs on Octave an open-source Matlab clone.) However, in a few cases we also provide wrappers to implementations written in C, for speed reasons. PMTK currently (October 2010) has over 67,000 lines.

pyqtgraph - Fast data visualization and GUI tools for scientific / engineering applications

  •    Python

PyQtGraph is intended for use in mathematics / scientific / engineering applications. Despite being written entirely in python, the library is fast due to its heavy leverage of numpy for number crunching, Qt's GraphicsView framework for 2D display, and OpenGL for 3D display. The easiest way to learn pyqtgraph is to browse through the examples; run python -m pyqtgraph.examples for a menu.

machineLearning - supervised and unsupervised algorithms from Andrew Ng's machine learning class

  •    Matlab

Install Octave free here or Matlab not free here. Note that Octave = Matlab without the nice graphical user interface. I use Octave so don't feel like you are missing anything if you don't have money for Matlab.

matlab2tikz - This program converts MATLAB®/Octave figures to TikZ/pgfplots figures for smooth integration into LaTeX

  •    Matlab

matlab2tikz is a MATLAB(R) script to convert native MATLAB(R) figures to TikZ/Pgfplots figures that integrate seamlessly in LaTeX documents. To download the official releases and rate matlab2tikz, please visit its page on FileExchange.

Octave GTK+

  •    C

Octave GTK+ is a Octave binding for GTK+, to help develop GUI programs from Octave, with GTK+. It aims to aid fast creation of scientific programs that need GUI's as well as number crunching power. We will also simulatneously work on a GUI for Octave

Octave - my octave exercises for 2011 stanford machine learning class, posted after the due date of course

  •    Matlab

I took this class 5+ years ago. Please don't open any issues or pull requests. All examples come as is. Octave is a high level (open source) programming language similar to Matlab. I'm using it for the 2011 Stanford Machine Learning Class.

gramm - Gramm is a complete data visualization toolbox for Matlab

  •    Matlab

Gramm is a powerful plotting toolbox which allows to quickly create complex, publication-quality figures in Matlab, and is inspired by R's ggplot2 library by Hadley Wickham. As a reference to this inspiration, gramm stands for GRAMmar of graphics for Matlab. Gramm is a data visualization toolbox for Matlab that allows to produce publication-quality plots from grouped data easily and flexibly. Matlab can be used for complex data analysis using a high-level interface: it supports mixed-type tabular data via tables, provides statistical functions that accept these tables as arguments, and allows users to adopt a split-apply-combine approach (Wickham 2011) with rowfun(). However, the standard plotting functionality in Matlab is mostly low-level, allowing to create axes in figure windows and draw geometric primitives (lines, points, patches) or simple statistical visualizations (histograms, boxplots) from numerical array data. Producing complex plots from grouped data thus requires iterating over the various groups in order to make successive statistical computations and low-level draw calls, all the while handling axis and color generation in order to visually separate data by groups. The corresponding code is often long, not easily reusable, and makes exploring alternative plot designs tedious.



CAELinux is a live DVD Linux distribution dedicated to Computer Aided Engineering and Scientific Computing. Based on Ubuntu, it features a full software solution for professional 3D FE analysis from CAD geometry. It includes the Salome 3D pre/post processor, Code_Aster non-linear/multi- physics FE solver, Code-Saturne and OpenFOAM CFD solvers, Elmer multiphysics suite, GMSH, Netgen & enGrid 3D meshers, GNU Octave, Rkward, wxMaxima, Scilab, and more.

spyder - Official repository for Spyder - The Scientific Python Development Environment

  •    Python

Spyder development is made possible by contributions from our global user community, along with organizations like NumFOCUS and Quansight. There are numerous ways you can help, many of which don't require any programming. If you'd like to make a donation to help fund further improvements, we're on OpenCollective. Spyder is a powerful scientific environment written in Python, for Python, and designed by and for scientists, engineers and data analysts. It offers a unique combination of the advanced editing, analysis, debugging, and profiling functionality of a comprehensive development tool with the data exploration, interactive execution, deep inspection, and beautiful visualization capabilities of a scientific package.

facerec - Implements face recognition algorithms for MATLAB/GNU Octave and Python.

  •    Python

Implements face recognition algorithms for MATLAB/GNU Octave and Python.

The Evil Toolbox


The Evil Toolbox for Matlab is a collection of scripts and functions that serve as useful snippets for learning or teaching Octave. The original toolbox was written in Matlab and is currently beind ported and tested on Octave.

JMathLib - Octave, Matlab clone in java

  •    Java

JMathLib is used to evaluate complex mathematical expressions and display the results graphically. It can be used either interactively or to interpret script files (m-files). It is a clone of Matlab, Octave, FreeMat, Scilab but written 100% in java.


  •    Java

joPAS is a java to octave bridge. Octave is a MATLAB syntaxis compatible program. You can execute octave commands from java and do graphical representations. This sdk have been developed by the PAS group of the University of Deusto.



SWRC Fit is a scientific tool for hydrologist. It fits several soil hydraulic models to measured soil water retention data by nonlinear fitting. It is written in numerical calculation language GNU Octave. Web interface is also available.

JCCKit - Chart Construction Kit for the Java platform

  •    Java

The JCCKit provides flexible framework for creating scientific charts and plots. It provides support for dynamic charts by automatically updating from the modified dataset. It is suitable for scientific Applets and for PDA's.

multidiff - Binary data diffing for multiple objects or streams of data

  •    Python

It's purpose is to make machine friendly data easier to understand by humans that are looking at it. Specifically multidiff helps in viewing the differences within a large set of objects by doing diffs between relevant objects and displaying them in a sensible manner. This kind of visualization is handy when looking for patterns and structure in proprietary protocols or weird file formats. The obvious use-cases are reverse engineering and binary data analysis. At the core of multidiff is the python difflib library and multidiff wraps it in data providing mechanisms and visualization code. The visualization is the most important part of the project and everything else is just utilities to make it easier to feed data for the visualizer. At this time the tool can do basic format parsing such as hex decoding, hexdumping, and handling data as utf8 strings, as well as read from files, stdin, and sockets. Any preprocessing such as cropping, indenting, decompression, etc. will have be done by the user before the objects are provided to multidiff.