FreeMat is a free environment for rapid engineering and scientific prototyping and data processing. It is similar to commercial systems such as MATLAB from Mathworks, and IDL from Research Systems, but is Open Source.

It supports many MATLAB functions and some IDL functionality. It also features codeless interface to external C, C++, and Fortran code, further parallel distributed algorithm development (via MPI), and some extended volume and 3D visualization capabilities.

Features include:

  • FreeMat supports the vast majority of MATLAB’s features including:
    • N-dimensional array manipulation (by default, N is limited to 6)
    • Support for 8,16, 32, and 64 bit integer types (signed and unsigned), 32 and 64 bit floating point types, and 64 and 128 bit complex types.
    • Built in arithmetic for manipulation of all supported data types.
    • Support for solving linear systems of equations via the divide operators.
    • Eigenvalue and singular value decompositions
    • Full control structure support (including, for, while, break, continue, etc.)
    • 2D plotting and image display
    • Heterogeneous array types (called “cell arrays” in MATLAB-speak) fully supported
    • Full support for dynamic structure arrays
    • Arbitrary-size FFT support
    • Pass-by-reference support (an IDL feature)
    • Keyword support (an IDL feature)
    • Codeless interface to external C/C++/FORTRAN code
    • Native Windows support
    • Native sparse matrix support
    • Function pointers (eval and feval are fully supported)
    • Classes, operator overloading
    • 3D Plotting and visualization via OpenGL
    • Parallel processing with MPI (in the FreeMat development versions)
    • Handle-based graphics

Project home page