# Features of MATLAB

**MATLAB** stands for Matrix laboratory. It was developed by **Mathworks,** and it is a multipurpose (or as we say it Multi-paradigm) programming language. It allows matrix manipulations and helps us to plot different types of functions and data. It can also be used for the analysis and design as such as the control systems. MATLAB is generally used for these types of tasks :

- Signal processing
- Optimization of functions
- Control system design
- Image and Audio processing
- Machine learning and Deep learning

## Features of MATLAB

**MATLAB is a high-level language:**MATLAB Supports Object oriented programming. It also supports different types of programming constructs like Control flow statements (IF-ELSE, FOR, WHILE). MATLAB also supports structures like in C programming, Functional programming (writing functions to contain commonly used code and later calling them). It also contains Input / Output statements like disp() and input().**Interactive graphics:**MATLAB has inbuilt graphics to enhance user experience. We can actually visualize whatever data is there in forms of plots and figures. It also supports processing of image and displaying them in 2D or 3D formats. We can visualize and manipulate our data across any of the three dimensions (1D, 2D, and 3D). We can plot the functions and customize them also according to our needs like changing bullet points, line color and displaying/not displaying grid.**A large library of Mathematical functions:**MATLAB has a huge inbuilt library of functions required for mathematical analysis of any data. It has common math functions like sqrt. factorial etc. It has functions required for statistical analysis like median, mode and std (to find standard deviation), and much more. MATLAB also has functions for signal processing like filter, butter(Butterworth filter design) audio read, Conv, xcorr, fft, fftshift etc. It also supports image processing and some common functions required for image processing in MATLAB are rgb2gray, rgb2hsv, adaptthresh etc.**Data access and processing:**MATLAB allows accessing of data from external sources like image files (.jpg, .PNG), audio files (.mp), and real-time data from JDBC/ ODBC. We can easily read data from external sources using the inbuilt MATLAB functions like__audioread__for reading audio files and imread for reading external images.**Interactive environment:**MATLAB offers interactive environment by providing a GUI (Graphical user interface) and different types of tools like signal analyses and tuners. MATLAB also has tools for debugging and the development of any software. Importing and exporting files becomes easy in MATLAB through the GUI. We can view the workspace data as we progress in the development of our software and modify it according to our needs.**MATLAB can interface with different languages:**We can write a set of codes (libraries) in languages like PERL and JAVA, and we can call those libraries from within the MATLAB itself. MATLAB also supports ActiveX and .NET libraries.**MATLAB and Simulink :**MATLAB has an inbuilt feature of Simulink wherein we can model the control systems and see their real-time behavior. We can design any system either using code or building blocks and see their real-time working through various inbuilt tools. It has lucid examples of basic control systems and their working.**MATLAB’s Application programming interface (API):**MATLAB consists of an extensive API. Through this API, we can link our C/C++ programs directly to MATLAB. Some options available in MATLAB API are calling MATLAB programs, read and write M-files, and using MATLAB as an interface to run applications. MATLAB can be used both as a computation and analysis tool.**Machine Learning, Deep Learning**,**and Computer vision:**The most demanding technologies like Machine learning, Deep learning, and Computer vision can be done in MATLAB. We can create and interconnect layers of a deep neural network, We can build custom training loops and training layers with automatic differentiation. For machine learning, we can use the DBSCAN algorithm to discover clusters and noise in DATA. For computer vision, we can do object tracking, object recognition, gesture recognition, and processing 3D point clouds.**Computational Biology toolbox:**This toolbox provides a great way for biologists and researchers to create and analyze new algorithms and patterns for development in biological and biochemical domains. We can build biological models and analyze them using this toolbox. Moreover, for students, this toolbox can be very much educational if they want to explore the biological domain.

## Advantages of MATLAB

**Easy to use interface:**A user-friendly interface with features you want to use is one click away.**A large inbuilt database of algorithms:**MATLAB has numerous important algorithms you want to use already built-in, and you just have to call them in your code.**Extensive data visualization and processing:**We can process a large amount of data in MATLAB and visualize them using plots and figures.**Debugging of codes easy:**There are many inbuilt tools like analyzer and debugger for analysis and debugging of codes written in MATLAB.**Easy symbolic manipulation:**We can perform symbolic math operations in MATLAB using the symbolic manipulation algorithms and tools in MATLAB

## Disadvantages of MATLAB

- MATLAB is slow since it is an interpreted language that is MATLAB programs are not converted into Machine language but are run by external software, so it can sometimes be slow.
- We cannot create the OUTPUT file in MATLAB.
- One cannot use graphics in MATLAB with -nojvm option, on doing so, we will get a runtime error.
- We cannot make functions in one single .m file as we have in the case of other programming languages. We have to create different files for different functions.
- Sometimes, the error messages are not much informative, so you have to figure out the error yourself.