A Replacement for Matlab...?

matlab_python_comparison.png

 

Python in combination with 3rd Party Packages: Numpy, Scipy, Pandas and Matplotlib can be used as a replacement for MATLAB. The combination of NumPy, SciPy and Matplotlib is a free (meaning both "free" as in "free beer" and "free" as in "freedom") alternative to MATLAB. Even though MATLAB has a huge number of additional toolboxes available, NumPy has the advantage that Python is a more modern and complete programming language and - as we have said already before - is open source. SciPy adds even more MATLAB-like functionalities to Python. Python is rounded out in the direction of MATLAB with the module Matplotlib, which provides MATLAB-like plotting functionality.


Most specialized libraries have Python extensions (but not all). So really there are only really specific cases you will need Matlab to use a specific proprietary library - like the Signal Toolbox or something specialized. Most data analysis, scientific computation, etc these days can be done with free tools such as Python + Extensions and/or R.


Some specialized libraries you need to worry about performance. Python is not the fastest language out there. - The solution is to 'wrap' your performance code Links to an external site. - and call it from Python. - This is an advanced feature we are not covering, but there is a solution.

 

In practice - use a hammer to nail things, a screwdriver to screw things - use the tool you need for the job you are doing. C++ is great for performance - but difficult to program and manage. Matlab is good for scientific computation - but proprietary, costs money Links to an external site., extensions cost money Links to an external site.,  and slow(er).   (- to be fair Matlab has a $99 Links to an external site. student version - for student use - but you cannot use it outside of learning...you need the full version)

I use C++ when I need to. Python when I need to. C# for Unity. Matlab when I need a very specialized toolbox....  but learn to use the tool you need when you need it.