MATLAB Resources

MATLAB is a high level computing environment from MathWorks. Its name is short for Matrix Laboratory. It was originally a system for solving matrices — quickly and accurately. But in its over three decades of existence, it has grown greatly to become a general environment for solving scientific and engineering problems.

What Can MATLAB Do?

Although at its base, MATLAB is still a system for solving linear algebra problems, an enormous amount has been built on top of this. Here are just a couple of cool things from the MATLAB Examples pages:

  • Data Acquisition: by simply dragging and dropping components, it is possible to take data from a connected device, process it, and output it in a user friendly form.
  • Differentiation: using the Symbolic Math Toolbox, MATLAB can perform calculus and many other forms of mathematics.
  • RNA Structure: this is an application that predicts and displays the structure of RNA based on its sequence.
  • Face Detection: this is just one of many face detection algorithms. MATLAB is used especially widely in image processing.

How Does MATLAB Work?

MATLAB uses its own development environment. Most people simply work inside of it. It uses its own proprietary language. However, it can be used with external programs and functions in languages like C++ and Fortran. What's more, applications that you create inside of MATLAB can be output to the C programming language so that they can be included in outside programs.

Regardless of all the bells and whistles, however, MATLAB is still at base about linear algebra. It thinks in terms of matrices. And the MATLAB scripting language shows this.

Basic Concepts

MATLAB is weakly typed like Perl and JavaScript. So it figures out what simple variables are based upon how you use them. For example, if you tell it x = 15.7, it knows that x is a floating point number. On the other hand, if you tell it x = 'help' it knows that x is a string. If you start using numbers like strings or vise versa, then it will deal with them on the binary level, much like Perl.

You can manipulate variables the same way you can in any programming language. Similarly, strings are really arrays of characters and can be managed thusly.

Matrices

The real power of MATLAB is in its easy manipulation of matrices. A matrix is defined within square brackets with columns separated by spaces and rows by semicolons. Here is a simple example from the MATLAB documentation:


A = [1 1 0 0];
B = [1; 2; 3; 4];
C = A*B

The first line defines a 1-by-4 A matrix. The second line defines a 4-by-1 B matrix. By basic matrix algebra, we know that the result is: 1*1 + 1*2 + 0*3 + 0*4 = 3. Obviously, far more complicated calculations can be performed.

Toolboxes

In addition to all the mathematical tools that MATLAB offers, there are many additions to it. In particular, there are toolboxes. We've already mentioned the Symbolic Math Toolbox. But there are many others in various areas:

  • Parallel Computing
  • Math, Statistics, and Optimization
  • Control Systems
  • Signal Processing and Communications
  • Image Processing and Computer Vision
  • Test and Measurement
  • Computational Finance
  • Computational Biology

As you can see, the uses that MATLAB is put to are broad, and they provide specialized tools for all of them.

Getting MATLAB

MATLAB is a relatively expensive product. The price for the base program is over $2,000. Simulink is $3,000 extra. And toolboxes are $1,000 minimum, and often much more. Generally, people use MATLAB under two circumstances. First, it is used in academia a great deal. As a result, MathWorks offers student versions of MATLAB and Simulink for less than a hundred dollars.

The second way people normally get access to MATLAB is through their employers. MATLAB is so powerful that it is often easily worth its price.

Free MATLAB Alternatives

There is no free version of MATLAB. However, there are two free alternatives to it. These are both powerful tools that will at very least provide you with an easy way to get started in the right direction.

  • GNU Octave: this is a graphical computational environment similar to MATLAB that is generally compatible with it, and is designed to be completely compatible.
  • Scilab: this is similar to Octave, although without as much focus on compatibility with MATLAB.

Learning MATLAB

There are a lot of online resources to help you learn MATLAB. But we recommend that you start with a book. What can ultimately be done with MATLAB is so vast that it is good to get a thorough overview of the subject.

Books

The following are all very good basic introductions to MATLAB.

Online Tutorials

Because of MATLAB's use at academic institutions, there are a lot of free tutorials that will get you started.

Other Online Resources

Here are a few resources for once you learn the basics of MATLAB:

Online Forums

MATLAB doesn't have the kind of user base that, say, C++ has. But there is still a very active community of coders. As always on forums, be aware that spam gets through. But all of these are solid forums.

  • MATLAB Answers: this is the MathWorks community forum where you can ask questions and look for answers.
  • MATLAB Subreddit: this is the very active MATLAB forum on Reddit. You might also find the math subreddit useful.
  • Stack Overflow: when it comes to just about anything computer related, Stack Overflow is the place. This link takes you to all the discussions that have been taged as having to do with MATLAB.
  • <dream.in.code> Other Languages: this is not specific to MATLAB, but it is very active with a lot of knowledgeable people around.
  • Drexel University Forum: this is the MATLAB section of their Math Forum. It's very active, but obviously with an academic bent.

Summary

MATLAB is a high level computing environment used throughout academia and in industries as varied as physics and finance. We've only touched on its capabilities here. With these resources, you can start learning the system. It could eventually take you just about anywhere.