# MATLAB Programming/Bonus Chapters/MATLAB Benefits and Caveats

## MATLAB Benefits

edit### Ease of Use

editMATLAB 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

editMATLAB 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

editCurrent 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

editMATLAB 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

editMATLAB 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

editMATLAB 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

editMATLAB 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

editIt 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

editThe 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

editRun-time errors can be difficult to debug

## References

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