If you’re reading this, you must be interested in learning what Matlab is, Lucky for you, Matlabtips is a fantastic resource to aid in learning the Matlab language and the multitude of functionality that comes with it. But first, we must answer these simple but important questions :
What is Matlab? Why would you use it? Where is it commonly used?
Matlab, which stands for Matrix Laboratory, is a complete programming environment that encompasses its own programming language, IDE (integrated development environment), libraries (called toolboxes in Matlab), amongst many other things.
Hint: IDE ( Integrated Development Environment) – An IDE is the place where you type your code. The advantage of using an IDE (over just using a text editor like Notepad) is that it offers functionality like error checking, syntax completion, and performance suggestions.
The actual Matlab programming language is a high-level language, meaning that you don’t have to be concerned with low level functionality such as memory management (though more advanced users may delve into this). Similarly, Matlab is a ‘weakly typed’ language. Whereas in some languages (such as C++), you must always define the type of a variable, in Matlab, it is assigned for you by default. For example, to set the variable myVar to a value of 2.38, this is how it is done in C++ vs. Matlab:
double myVar = 2.38;
myVar = 2.38;
Matlab takes care of this for you, typically allowing for quicker development time. As the name would imply, Matlab does particularly well with matrix manipulation and linear algebra. Part of this includes powerful indexing operations, which allows for fast and efficient Matlab expressions.
What is Matlab good for?
- Matlab is very good at performing matrix operations, making it useful for things like image operations and control system analysis
- It is very quick to develop code in Matlab. Many libraries (e.g. computer vision, signal analysis, GUI tools) are part of the Matlab ecosystem. This saves developers the time of installing and configuring new libraries to perform whatever tasks they have in mind. Instead, developers can quickly get an idea and try it out in code using the vast functionality of Matlab’s libraries.
- Part of the quick development time in Matlab comes from the ability to write concise code. It’s often said that 10-20 lines of C++ code could be replicated in 1-2 lines of Matlab code. If this is scaled over a large program, it is easy to see why concise code is a real advantage. It makes the job of understanding what it going in the code a much easier task. Typically, this makes it fairly easy in Matlab to pick up other people’s code and quickly understand what the program is doing.
- Part of the power in Matlab comes from its large user base and extensive documentation. In fact, many tasks you may face have already been solved by people who have already uploaded their code to Mathwork’s File Exchange. Furthermore, Mathworks maintains extensive documentation on both individual functions and full-fledged examples.
- One more thing that Matlab really excels at is its plotting functions. Matlab offers a variety of ways to visually display data. Furthermore, most of the plotting functions are very user-friendly and configuring the plots to look exactly as you would like is very easy to do.
What isn’t Matlab good for?
- One of the biggest downsides of Matlab is the price tag. The standard Matlab package, which can be used for commercial purposes, has a steep price tag in the thousands of dollars depending whether you want one or several toolboxes. For non-commercial usage, the price tag is some out reduced depending on if you want a home license (200$ base + around 50$ per toolbox) or a academic research license (500$ base + 200$ per toolbox). For many students and academic researchers, though, the price of the program may be included as part of your tuition. For some, this price tag is not entirely their concern since many engineering companies pay to have a set of licenses on hand. Obviously, all of the options are more expensive than other free languages. Depending on your particular situation, the price alone can make Matlab an unusable option.
- Matlab does not make for a great general purpose language. Matlab does scientific computing very well, but many other languages can take on a variety of tasks including web development, back end, and rich GUIs.
- Matlab is a semi-interpreted language compared to a compiled language (like C/C++). An interpreted language runs directly from the program code and need to be converted to machine code at each line of your program. Whereas, compiled languages are compiled into machine code, which typically runs more quickly than interpreted languages.
- Using Matlab can use a larger amount of RAM than a compiled program. For most applications, a typical computer will be fine. However, processing larger images, videos, or data sets may eat up a larger amount of memory.
What types of companies use Matlab?
As you will soon find out, Matlab does have a bunch of functionality and built in tools. For this reason, it is used in many industries. Some examples include large aerospace and defense companies. These companies use Matlab and Simulink to prototype, test, and iterate control systems. Many major car manufacturers also use Matlab to develop control and fuel consumption systems.
Any company that deals with computer vision will also be likely to use Matlab to at least prototype new algorithms. Another industry that heavily uses Matlab is robotics. With the built in functionality and growing hardware support from Mathworks, making robots do advanced things using Matlab has become easier than ever.
Additionally, some financial companies use Matlab to model risk or optimize portfolio risk. Matlab even has a Financial toolbox to help make this sort of analysis even easier. More than just these examples, any company or researcher that has use for data analysis and presentation will benefit from using Matlab. For instance, Apple frequently references Matlab in their recruiting announcements.
Why Matlab is a good skill?
As you can see, Matlab is used in many industries and can essentially be used in any job where data analysis is a desired skill. As the world becomes more data and statistically driven, many jobs will follow. If you plan to be doing some level of research or data analysis in your career, learning Matlab will be very valuable to you. You will be able to prototype new ideas quickly and easily. If you are more focused on being a pure software engineer, Matlab may not be the best tool for you. Since it is really aimed more towards scientific computing, it may leave a lot to be desired if you want to develop mobile or web applications. In general, knowing at least a bit about the environment and language will likely be helpful for the future. At the very least, you will have a good starting point if you find that your career path would include Matlab. With the many features that Matlab offers, I invite you to read some more post here on Matlabtips and get more acquainted with the wonderful world of Matlab.