Matlab VS Python for Computation Purpose

Posted on May 18, 2020 in Research Tricks & Tools

Basic Decision

First, I believe that both of them are great and can finally work out. The only thing I need to consider is which one can save me efforts and be useful in my future career. Of course, I can be proficient on both languages, but using a language is not a purpose but a way to my results. Currently, I am targeting academia in the future and I will be teaching and doing research using these languages. For now, I will have to do specific research using these languages for at least 4 years since now(2020).

This will be a sharp tool for me to finish my current work.

Matlab is already sharp enough, and the reason someone wants to switch to Python is that he likes the Objective Oriented programming in python and he needs the Machine Learning packages. The main issue is that some algorithms in Python packages are not verified and the documentation is not good at all and as a student, Matlab documentation is really as good as a textbook and all of them are written by professionals from engineers and mathematicans.

So for me, I still believe that Matlab is a more sharppend tool at least for now.

How to compensate the insufficiency

One of the main issue for Matlab is that it is not very convenient to use Objective Oriented programming (defining classes). Of course, it is more convenient to write a big program using Python. The convenience is shown in passing varialbes and the clear structure of the program. Matlab can only use the global paramters and packed state variables in a nested funciton to pass paramters and variables. However, this might be already be enough for me to implement my TCA model. While Matlab allows you to quickly obtian your results in sacrifying some rigidity.

Difference

If we want to make the model comprehensive or general enough, python probably will be better. However, research processes always lead us to a situation where we have to deal with new and specific work. If it is included in a previous general method, then it will not be research any more. We have to know that we are not going to build a software or a produce, instead we need to verify that our idea works with efficiency.