It depends on what you're trying to do. There's no question that Python is a cleaner language with generally better support for general-purpose programming, but Matlab is really good for numerics, prototyping and exploratory data analysis.
It's also worth saying that Matlab graphics are really convenient and powerful. Last time I used matplotlib, I was very disappointed with the lack of many plot types and finickiness.
One other example is the parfor (Matlab's support for multithreaded computation in embarrassingly parallel computations like map/reduce and cross-validation). Classic Matlab -- simple, not totally orthogonal, gets you 80% of the way there without fuss. (I don't know whether to hate this tendency or love it.)
There's a reason it's so widely used, and it's not because people have not shopped around.
Comments
It depends on what you're trying to do. There's no question that Python is a cleaner language with generally better support for general-purpose programming, but Matlab is really good for numerics, prototyping and exploratory data analysis.
It's also worth saying that Matlab graphics are really convenient and powerful. Last time I used matplotlib, I was very disappointed with the lack of many plot types and finickiness.
One other example is the parfor (Matlab's support for multithreaded computation in embarrassingly parallel computations like map/reduce and cross-validation). Classic Matlab -- simple, not totally orthogonal, gets you 80% of the way there without fuss. (I don't know whether to hate this tendency or love it.)
There's a reason it's so widely used, and it's not because people have not shopped around.