# What is it?

MATLAB is computer programming language developed by Mathworks for scientific computing. It was designed to facilitate numerical computation without having to make use of low-level programming languages such as C or Fortran. There are many software toolboxes available from Mathworks and other sources that provide additional functionality needed to solve problems in a wide range of disciplines such as

• computational biology
• image and video processing
• optimization
• partial differential equations
• signal processing and communications
• statistics and data analysis

and more.

# Why Learn MATLAB?

• MATLAB's syntax is relatively straightforward and may be easier to master than other high-level programming languages.
• MATLAB's many toolboxes obviate the need to reinvent the wheel to solve nontrivial problems; this is very useful in a range of engineering and mathematical subjects that involve algorithms that have already been implemented.
• MATLAB was designed to facilitate the representation of certain numerical problems - particularly those that involve linear algebra (hence is name, Matrix Laboratory); hence, many engineering problems that involve vectors, matrices, and tensors can be intuitively expressed with its syntax.
• As a weakly typed, high-level language, MATLAB reduces the amount of time programmers need to spend thinking about data structures and memory management.
• MATLAB is a de facto standard in industry and academic; scientists and engineerings can leverage their familiarity with the software in numerous professional and research contexts.

# Why Might I Want to Use Tools Other Than MATLAB?

• While it has evolved considerably since its creation and now provides features such as symbolic mathematics and graphical user interface design tools, MATLAB’s matrix syntax may be less than optimal for learning about general programming or computer science concepts. For example, an instructor of a computer science course on data structures and algorithms might find it preferable to have students use a general-purpose procedural language such as Python or Java.
• Long MATLAB programs can be difficult to manage.
• Although it supports object-oriented programming, some find MATLAB’s support of classes less intuitive than that of other high-level languages.

# How Can I Learn to Use MATLAB?

There are numerous online resources for learning the basics of MATLAB. A great place to begin is with Mathwork’s Getting Started with MATLAB guide. You should also check out Mathworks’ MATLAB tutorial site, FAQs, and very extensive Documentation.

# I Need Help With a Question!

There are numerous sites online where one may seek assistance for MATLAB-related questions. Here are some good starting points:

MATLAB Central - The main online watering hole of MATLAB users. Check out the open forum where you can interact with other MATLAB users (you will need to create an account to post questions and comments on the forum).

Stack Overflow - A great site for serious programming questions in many languages.

Math Stack Exchange - Managed by the same folks as Stack Overflow. A good place to direct your questions if they are motivated by math/numerical considerations rather than programming or computer science.

MATLAB IRC channel - The #matlab channel is an unofficial place for MATLAB users to discuss questions on IRC. Remember to use PasteBin if you wish to share/post code during a discussion!

# What's Available

• Columbia Engineering School provides access to MATLAB and Simulink (as well as a selection of toolboxes) to all SEAS-affiliated students, faculty, and researchers via Campus License. SEAS students may install the software on one of their personally owned computers.
• Access to MATLAB is also provided at several computer labs on the Morningside Campus. The Gussman Lab/251 Engineering Terrace is open to all Columbia students.

# Getting Started

• To install MATLAB using the University site license, see this page on the FU SEAS web site. If you encounter installation problems, contact matlab@seas.columbia.edu. Please do not address correspondence regarding other issues to this address.
• To obtain a license from the EE Department, send a request to sysadmin@ee.columbia.edu with the name of the OS that you are using (e.g., MacOSX, Windows, Linux) and the hardware address of your wired Ethernet card; the latter is a 12-digit hexadecimal sequence of the form AB:CD:EF:12:34:56. If your computer only has a wireless card, send the hardware address for your wireless card instead.

# Tips and Tricks

## General Tips

When posting questions or comments on IRC, by email, or on forums that don't support easy formatting of code snippets, use PasteBin to share such snippets with others; it’s much less messy than actually pasting your code in your message. You can also specify how long a code snippet should remain online before expiring.

## For Linux

If you prefer to run MATLAB from the terminal rather than using its built-in GUI, you may wish to try the rlwrap utility. This program provides a variety of useful features available in Unix command interpreters such as bash to interactive programs like MATLAB whose command interpreters are not as powerful.

For example, if you are running MATLAB R2010b and your MATLAB installation directory is specified in the environmental variable \$MATLAB, the following command will start MATLAB with interactive command-line editing (-a), filename completion (-c), multiline input support (-m), and the saving of command history between MATLAB sessions (-H):

`	`

500 W. 120th St., Mudd 1310, New York, NY 10027    212-854-3105