What do you like about MATLAB?
Oliver Woodford
on 16 Feb 2011
I use MATLAB most days (when I'm at work!). It makes my life easier, for many reasons, which is why I like it.
What are the reasons you like it (assuming you do), and why?
41 Comments
Using Vectorization instead of loops.
Early Matlab had a very similar syntax to FORTRAN77, which made it an easy transition for those of use who did have that joy.
Sadly I've never had the joy of programming in fortran.
While the high level sytax allows to write programs very fast, but with a limited processing speed, the bottlenecks can be easily forwarded to a MEX file written in C, C++ or Fortan. Further connections to COM, Visual-Basic, Java, etc (!) are easy to implement.
This allows a rapid prototyping of software as well as sufficiently efficient programs.
Superb, nearly complete documentation and corresponding search. I have been to the point of tears trying to find the simplest thing in the Maple 11 documentation using their help.
It is always a great sigh of relief to come back to MATLAB and know that I will be able to find what I want easily.
@Oliver: What a pitty. I thought "Matlab is not FORTRAN77" would be worth to be accepted.
Matlab's error messages are meaningful and help to identify and solve the problems.
I've seen only 2 useless error messages in the last 8 years! Compared with messages created by e.g. C-compilers, operating systems or even LaTeX, you can feel, that the TMW programmers really wanted to support the users in debugging. Thanks!
If I avoid Java calls, I can run my programs developped under Matlab 4.2 in 1994.
There are a handful of nasty limitations in the backward compatibility, but if I compare this with any other software from 1994, the high quality and stability of Matlab becomes very obvious.
There will, of course, be no accepted answer. It's about what you think.
The less popular yang to this question's yang is also worth a look:
http://www.mathworks.com/matlabcentral/answers/1427-what-frustrates-you-about-matlab
Image Processing Tools (not constrained to just the IPT)
Though I think visualization tools could be improved.
CSSM/FEX/Rest of Matlab Central
One-lining complicated expressions.
It just makes me feel good.
\
It takes getting a little used to, but once you grok it... ( / too, but it's not as useful as \). The fact that it handles all manner of linear systems is glorious.
A very simple syntax for handling matrix and vector computations. EDIT: I think the notation for element-by-element operations is particularly unusual and amazingly useful.
Number one for me is - a huge library of mathematical functions that you don't need to download and install!
The language is such that very complicated programs can be written quickly in very few lines (once you've learned the basic syntax and a few handy functions).
Logical indexing is proof that Cleve loves us and wants us to be happy. Eg, goodbye outliers:
x(x > val) = []
Or stats on a subset of data:
mean(x(t < val))
And so on.
Interesting start of a thread, Oliver. I encourage all posters to write a single point per answer to make it easier for others to vote up answers they agree with.
The debugging tools are pretty good. You can set breakpoints, even conditional ones (not sure about watchpoints on data values, though). Then you can inspect the variables, even change them, and visualize them, etc., right inside the program.
And error handling is good/helpful. It tells you exactly what the problem is.
The profiling tool is AWESOME. It is so easy to see where code bottlenecks are.