# MATLAB Programming/Bonus Chapters/MATLAB Benefits and Caveats

## MATLAB Benefits Edit

### Ease of Use Edit

MATLAB is an interpreted and interactive language. Programs can be easily written and modified by a user with MATLAB, which is a built-in integrated development environment and debugger. Also, there are no need to use import functions as MATLAB will use the necessary functions as it includes many built-in math and engineering functions (only if necessary toolboxes are installed)

### Platform Independent Edit

MATLAB language is supported by Windows, Linux and Mac. Thus, a program written on one platform can be easily run on other platforms. This is a platform independence feature.

### Wide range of capabilities Edit

Current MATLAB version has a wide range of capabilities, which includes data analysis, statistical analysis, optimization, signal processing, communications, control design, test and measurement, image processing, and computational finance

### Full Graphics Capabilities Edit

MATLAB provides advanced graphics that can help visualize the scientific and engineering data very well. The graphs are highly customizable such: One can change the colors, lines and marker, add annotations, LATEX expressions, legends, the addition of multiple axes etc.

### Good Source of Help Edit

MATLAB is widely used in industry and academia, so there is a wealth of support and resources available. There are many large communities that let you learn MATLAB such as Reddit (46.5k users) , Facebook group (MATLAB Programs/Code (matlabcoding.com). Hence, you might find answers that the people that come before you that might encounter similar problems too.

## MATLAB Caveats Edit

### Expensive Edit

MATLAB is very expensive for the base programs, plus additional official toolboxes from Mathwork are also expensive and costs can ramp up into thousands (Especially for students with limited budgets)

### Closed Source Edit

MATLAB is closed source. Hence, students that are interested on how the algorithm works may stuck due to closed source of the MATLAB functions.

### Slow & Inefficient Edit

It is slow compared to compiled programming languages. MATLAB is not efficient for nested loops and will not automatically take advantage of parallelism that are introduced in the code and may need to buy **Parallel Toolbox** .

### Awkward Implementations Edit

- If you have already coded in fully object-oriented programming (OOP) language, in particular, Python, you will find some oddities in MATLAB’s OOP implementation as MATLAB is more to scripting and not coding as you might with other programming languages. You may feel this when, for example, you are working with cell arrays in MATLAB.

- There are no in-place operators like
`+=`

. This will leads to lines that are much longer and more harder to read.

### Poor Documentations Edit

The documentation doesn't always have enough examples therefore you may need look on-line for different examples of using a certain function. For example, the function **fibodemo.**

### Confusing error message Edit

Run-time errors can be difficult to debug

## References Edit

https://web.archive.org/web/20210921113616/https://modelingguru.nasa.gov/docs/DOC-1762