Today we learn about a specialized software package called MATLAB which stands for ‘Matrix Laboratory’ used in high performance mathematical calculations , visualizations, and programming environments. It is an interactive interface which provides an environment having hundreds of built in functions for technical computing , graphics, and animations.
We will learn more in detail about MATLAB and know about its history, why it was developed, what is MATLAB framework and its benefits and use cases.
Definition – MATLAB
MATLAB was initially developed to implement a simple approach to matrix software developed by two projects namely – LINPACK (Linear system package) and EISPACK (Eigen system package).
It is a modern programming language environment and a software environment having refined data structures including built in editing and debugging tools for programmers and supports object-oriented programming functionality.
MATLAB was developed in 1970s by Cleve Moler, the chairman of Computer science department at university of New Mexico. Cleve wanted his students to use LINPACK & EISPACK (software libraries for numerical computing, written in FORTRAN), and without knowledge of FORTRAN. In 1984 Cleve Moler with Jack Little & Steve Bangert re-written MATLAB in C language and founded MathWorks. These libraries are known as JACKPAC and later were revised in year 2000 for matrix manipulation and renamed as LAPACK.
MATLAB has five elements each of them described in detail in above diagram.
- Development environment – it has set of tools and facilities which help to use MATLAB operations and files. This comprises of many GUI based tools – MATLAB desktop and command window, command history, editor and debugger, browsers , workspaces, reports, and search path.
- MATLAB Mathematical Function Library – has basic functions like sum, since, cosine, and complex mathematical functions like matrix inverse, matrix eigenvalues, Bessel functions, and fast Fourier transforms.
- MATLAB language – high level matrix/array language with control flow statements , functions, data structure, input/output and object-oriented programming interfaces. It allows both programming in the small and large to develop quick throw away programs to create large and complex application functions.
- Graphics – it has capabilities to display vector and matrices as graphs, as well as annotations and printing of graphs. It contains high level structures for two dimensional and three-dimensional data presentation , image processing, animation. It also has low level structures to customize the display of graphics fully or build complete graphical user interface on MATLAB Applications.
- MATLAB External interface/API – This is a library which allows to write C and FORTAN programs which interact with MATLAB and contains facilities for calling routines from MATLAB (dynamic linking) , calling MATLAB as computational engine and reading and writing MAT format files.
Features and Capabilities
Characteristics/Features of MATLAB
- Supports both symbolic and numerical computing
- High level language mainly for engineering and scientific computing
- Works within desktop environment and provides full features for problem solving, iterations and design
- Can create custom plots for data visualization and tools using built in graphics
- Specific applications are designed to work on specific problems such as data classification, control system design, tuning, and signal analysis.
- Several add on toolboxes to build a wide range of engineering, scientific, and customized user interface applications
- Interfaces are available to work with other programming languages such as C, C++, Java, .NET, Python, SQL, and Hadoop.
- Optimize complex processes and distributed systems
- Real time testing of test control systems and signal processing algorithms
- Development of embedded systems using model-based design
- Develop embedded code for prototypes or production
- Perform parallel computing with large scale systems
- Import or access data from other sources
- Work management by automation of processes
- Working with multiple cloud platforms – MathWorks cloud, AWS, Azure etc.
- Capable of mathematical modelling of complex systems
MATALB Pros and Cons
- Metrices and vector handling efficiently
- Quick analysis and plotting
- Extensive documentation available
- Lots of inbuilt functions FFT, Fuzzy logic, neural nets, numerical integrations, OpenGL etc
- Multithreading support and garbage collection for parallel execution of algorithms
- Best mathematical package libraries to support all fields of mathematics , simple to complex computations
- Fastest IDE for mathematical computation of matrices and linear Algebra
- 2-D and 3-D data visualization ,image processing and animation of high quality
- Slow in comparison to other languages like C or java
Application of MATLAB
- Computational Biology – Biological data computation for analysis, visualization, and modelling
- Control systems – design , testing and implementation
- Data science – Data driven insights to improve designs and decisions
- Deep learning – Design, build and visualize neural networks
- Machine learning – Discovering new patterns to develop predictive models
- Wireless communications – design and testing of wireless communications
- Image processing – Image and video processing
- Internet of things – insight into data by connective embedded systems to Internet
- Data exploration and test automation
- Power electronics – Providing digital control for motors, power converters, and battery systems
- Biotech and pharmaceutical – data analysis for drug discovery, development, clinical trials, and manufacturing
And the list is never ending ….