Octave
as Olli said Ocatave is a matlab alternative:
Notable Features (shared with matlab):
Syntax near identical. (To the extent that my university's matlab course uses octave in the autograder, even though the unit is taught entirely in matlab and only mentions octave once in passing.)
High quality BLAS Library integration (Normally I beleive it is integrated with OpenBlas but this can depend on your system, it may be Atlas). Because of the BLAS, like matlab it is much more efficient to used vector techniques (rather than for loops) - so good matlab code is still good octave code.
Automatic multithreading for performance: if you write some complex code in octave or matlab and open up a tool to see your CPU load, it will load up all of your cores. This parrellisation means things should run faster.
3D Plots with mouse interaction: If you create a 3D plot, the window that opens supports mouse interaction to zoom, pan and rotate.
There are also a few added features, but I've never found them noteworthy enough to remember them.
Notable Features missing:
- Libraries: There is no simulink, and various other libraries such as the Signal Processing Toolbox, don't exist. But there are some alternatives like the signal package
- GUI Workspace: the octave work enviroment is a commandline shell. It is functional and uses something like GNU readline. When you plot a graph that opens in a new window with full graphics. (of the graph). But there is no Plot editor, no file exporer on the side, no variable explorer etc. Just a shell.