MATLAB

MATLAB

Office - Freeware

Description

It is a running joke in all the engineering departments I have worked in: no one likes MATLAB, but everyone uses it. The syntax is old-fashioned, the license is ridiculous, and every few months someone in the group chat proclaims that they have switched to Python permanently. Then there is the finals, or a deadline, and there they are once again, typing into that old grey editor window at 3 AM.

MATLAB is a programming environment developed by MathWorks, a Natick, Massachusetts-based company that is over 30 years old. The name is an abbreviation of Matrix Laboratory, which gives you a lot of idea of what it was originally intended to do, namely to work with matrices and linear algebra. It grew over the decades into a large platform encompassing signal processing, control systems, image analysis, machine learning, robotics, financial modeling and a long list of other areas via add-on packages known as toolboxes.

The reason why people keep returning in spite of the complaints is the speed with which you can get to working prototype. A fifteen-line script to load a dataset, apply a filter, plot the output, and save a figure can be written. It is entirely possible to do the same thing in Python using NumPy, SciPy, and Matplotlib, but you are searching for import statements, struggling with environment problems, and grappling with syntax to plot, which never quite sticks in my memory. MATLAB simply works out of the box with such a workflow. The documentation is also truly excellent – it is likely the best of any technical software I have ever used. There are clear examples of each of the functions and the community forums are active enough that someone has most likely asked the same question you are asking.

Simulink is also worth mentioning on its own since it is half the reason why some industries are trapped by the MathWorks ecosystem. It is a graphical simulation program that allows you to drag and drop blocks to simulate dynamic systems – imagine flight controllers, motor drives, communications systems. Aerospace and automotive companies base complete product lines on Simulink models, and at that point, it is no longer really an option to switch. I did a project at school where we simulated an attitude control loop of a drone in Simulink, and I will say that it was much easier than writing the same thing by hand.

Now, the pricing. This is where individuals become truly angry. Even a typical commercial individual license costs approximately 940 a year only on basic MATLAB. A toolbox, or two or three, will cost you at least another 1000 a year each. A working engineer that requires Signal Processing and Optimization is therefore looking at around $3,000 a year. The everlasting commercial license is approximately 2,150 upfront, yet that is just the basic product and you have to pay maintenance after the first year. At $49 per student on MATLAB by itself or $99 per student on the Student Suite that includes Simulink and ten toolboxes, this is actually quite fair. Home licenses are priced at 149 when used on a personal, non-commercial basis. However, when you are a freelancer or a small startup, the commercial pricing is painful, particularly when Python and R are available free of charge.

The cost is typically paid in full by campus-wide deals in most universities and that is likely the reason why so many students learn MATLAB and then have sticker shock when they graduate and find out that their employer does not have a license. I have seen that very realization unfold with no less than four of my former classmates.

Another sore spot is performance. MATLAB is an interpreted language in its very nature and therefore computationally intensive loops are slower than comparable C or even highly optimized Python code. MathWorks has over the years done much work with the JIT compiler and the operations of the vectors are quick, however, when you have to do a lot of iterations in your workflow, you will feel the slack. Big simulations are memory-consuming and time-consuming. A graduate student in my lab once left a Simulink model running overnight, and returned to find that it had used 30 GB of RAM and was still running.

Even the editor has become significantly better in the new versions. Live scripts allow you to combine code, output, and formatted text in a notebook-like format, which is obviously MathWorks reacting to the popularity of Jupyter notebooks. The App Designer GUI building tool is average at best. And MATLAB Online provides you with a browser-based version that includes 20 free hours per month, which is useful when you need something quickly without using your primary machine.

The areas where MATLAB continues to dominate, and likely will continue to dominate, are where the toolboxes do not have a real counterpart. When you are simulating a 5G system, radar waveform design, or generating code in a model-based way to run embedded controllers, the MathWorks ecosystem is only a few years ahead. It is theoretically possible to rebuild that infrastructure in open-source tools, but it is a huge task that no one has the budget or time to undertake.

Should you learn it? Yes, almost definitely, if you are an engineering or physics student, your coursework will require it sometime. Probably not, in case you are a data scientist or a web developer. Python fits your requirements and the community is expanding at a higher rate. You do not need to be a professional in the MathWorks world to know that it is not as easy to quit as it may seem. And, frankly, despite all the complaining, the tool is doing what it is doing exceptionally well. It simply bills you as it knows you have no option.

User Rating:

4.6 / 5. 5

Freeware
4400 MB
Windows PC
mathworks