4 ms·
Here's what MathWork's website says: ---------------------------------------------------------- MATLAB® is a high-level language and interactive environment f
by pachydermic 13y ago
Here's what MathWork's website says:
----------------------------------------------------------
MATLAB® is a high-level language and interactive environment for numerical computation, visualization, and programming. Using MATLAB, you can analyze data, develop algorithms, and create models and applications. The language, tools, and built-in math functions enable you to explore multiple approaches and reach a solution faster than with spreadsheets or traditional programming languages, such as C/C++ or Java™.
You can use MATLAB for a range of applications, including signal processing and communications, image and video processing, control systems, test and measurement, computational finance, and computational biology. More than a million engineers and scientists in industry and academia use MATLAB, the language of technical computing.
----------------------------------------------------------
I work at a place where people use (and abuse) MATLAB a lot. The thing is, they're not programmers. As smart as they are (and they are truly brilliant) they're not especially good with computers, programming or computer science. If they tried to use a 'real' programming language, things would undoubtedly be even worse!
MATLAB is awesome at giving you powerful functions baked right in. That's good because people who aren't good at coding efficiently don't have to. Instead of messing up the whole program from start to finish, they only mess up the top level and that often isn't as big of a deal as messing up the small components that get used again and again and have to be as efficient as possible.
I agree that MATLAB isn't a general purpose programming language, but I don't think that that's how MathWorks is really selling it (note that "[creating] applications" is at the end of the list and analyzing data is at the beginning). They're mainly saying it's good for solving a specific group of problems - those that technically minded people (like scientists, engineers, economists and financial analysts) have to solve. I actually agree, especially when you take into consideration the fact that the people who really like MATLAB the most aren't really into programming or even that good at it.
Of course that's just my opinion. I'd like to hear how you guys disagree with me.
- kyzyl 13y agoI'm curious... is the matlabbing that happens at your work related to the simulink/realtime/control parts of matlab? Based on the other things you've said it sounds to me like that might be the case. Obviously I might be wrong. In any case, I've found that those parts of matlab can actually be used pretty effectively. I think the reason is that, even though matlab as a language is pretty crappy (IMO), these domains aren't actually dominated by programming languages. Take for example industrial control. It's extremely common to use PLC's, PAC's or FPGAs. These tools are, like simulink, largely operated via proprietary graphical environments. Essentially, I agree with your points for uses of matlab where you don't write much custom code, and/or where your custom code is very insulated from the 'real world' and even from the rest of the system.
- pachydermic 13y agoWe don't use simulink or anything like that - we just use the typical linear algebra stuff: Markov chains, finding eigenvalues, solving linear systems, etc.
- ankitml 13y agotry python. it is much more powerful in almost every sense. And it is not easy to write crappy code in python.
- Gravityloss 13y agoLast I looked, vector and matrix handling was extremely clunky and tacked on in Python.
- Genmutant 13y agoYou would probably use NumPy, which even has a page for people used to Matlab: http://wiki.scipy.org/NumPy_for_Matlab_Users http://wiki.scipy.org/NumPy_for_Matlab_Users
- pwang 13y agoCan you be more specific?
- hillbillyjack 13y agoI'm not the parent commenter but I've used matlab extensively and found Numpy clunky in comparison. All I ever did in matlab involved matrices (usually differential equations with matrix coefficients and other things of that nature) and matrices are super easy to use in MATLAB: A = [1 2 3 4 5 6]; or A = [1 2 3; 4 5 6]; I can input A just like that and it works, try out the python syntax: A = array([[1,2,3],[4,5,6]]) And it just goes on from there. Even if you're doing complicated operations because matrices are the essential building blocks of MATLAB it is easy to use, not so much in python. I tried building my FEA (finite element analysis) project in python after i finished programming it in matlab it and found it to frustrating to continue.