MATLAB Programming
MATLAB Programming
Chapter 1: A Tutorial Introduction
Chapter 2: Basic MATLAB Concepts
Chapter 3: Data Storage and Manipulation
Data Types and Operations on Point Values
Arrays and Matrices
- What is an array?
- Introduction to array operations
- Vectors and basic vector operations
- Struct Arrays
- Cell Arrays
- Sparce Matrices
Chapter 4: Graphics
Chapter 5: M File Programming
- Scripts
- Comments
- The Input Function
- Control Flow
- Loops and Branches
- Error Messages
- MATLAB Caveats
- Debugging M Files
Chapter 6: Mathematical Manipulations
Linear Algebra
Differential Equations
Chapter 7: More advanced I/O
Chapter 8: Examples
Chapter 9: Object-Oriented Programming
Chapter 10: An alternative to MATLAB: Octave
Chapter 11: Toolboxes
MATLAB is a programming language developed by The MathWorks.
It started out as a matrix programming language where linear algebra programming was simple. It can be run both under interactive sessions as well as a batch job.
GNU Octave and LabVIEW MathScript are systems for numerical computations with an m-file script language that is mostly compatible with Matlab. GNU Octave is available as free software under the GNU GPL. LabVIEW MathScript can be used through the free MathScript Online interface or by purchasing the LabVIEW Development System. Both alternatives can replace Matlab in many circumstances. While a good deal of the content of this book will also apply to both Octave and LabVIEW MathScript, it is not guaranteed to work in exactly the same manner. Differences and comparison between MATLAB and Octave are presented in Comparing Octave and MATLAB.
A Tutorial Introductions
Basic MATLAB Concepts
Saving and loading a MAT-file
-
- Commands
- File Naming conventions
- Basic Reading and Writing data from a file
The MATLAB Command Prompt
-
- Calculator
Data Storage and Manipulation
Data Types and Operators on Point Values
Arrays and Matrices
Graphics
Graphics
-
- Plot
- Polar Plot
- Mesh
Annotating Plots
M-file Programming
Scripts
Control Flow
Error Messages
Debugging M Files
Numerical Manipulation
Linear Algebra
It is the Matrix laboratory after all.
-
- Operations
- Transpose
- Systems of linear equations
-
- Row reduced echelon form
- Inverse
- Coffactor, minor
- Jacobian
Differential Equations
More advanced I/O
Different versions of MATLAB handle this differently. We will focus on versions 6.5 and 7.x, primarily on MATLAB 7.x since it is the latest. A note will appear when the procedure is different for ver. 6.
I hope this will be helpful to people who actually want to use MATLAB for something useful, as opposed to doing assignments for professors who like to hear themselves talk.
Writing and Reading to A Serial Port
Writing to a USB port
Examples
Filtering
-
- Moving Average
- Alpha Beta
- Kalman
-
- PSD estimation
- Entropy
- Markov Processes
- Queuing Theory
Controls
Phase vocoder
See "Phase vocoder and encoder in MATLAB" for an example phase vocoder and the corresponding sound sample encoder in MATLAB.
Object Oriented Programming
MATLAB as well as Octave have object oriented capabilities. Yet, technically it is not fully an object oriented language.
An Object Oriented Language(OOL) has three components: 1. Polymorphism 2. Inheritance 3. Encapsulation
MATLAB only has the third component.
Octave can be extended by adding new objects. Those objects can overload the operators like e.g. assignment, slicing, comparison.
While in Matlab, this can be done with m-script, in Octave new objects are implemented as C++ classes. A simple example of how objects can be added to Octave can be found here.
Struct arrays
MATLAB classes
An alternative to MATLAB: Octave
What is Octave ?
A short presentation of Octave and its history.
Differences between Octave and MATLAB
The most important differences between Octave and MATLAB that anyone willing to use Octave instead of MATLAB should be aware of.
Toolboxes and Extensions
The toolboxes are pretty good if you can afford them. In version 7 there are a lot of toolboxes.
Symbolic Toolbox
MATLAB Compiler
Legacy Toolboxes
- GUIDE
allows the creation of interactive user interfaces. - Simulink
is for modeling, simulating and analysing systems. - Psychtoolbox
is a set of tools that aid in vision research. - Distributed computing- The distributed computing toolbox is a set of tools that aid in distributing models over a cluster.
- Optimization- The optimization toolbox includes various algorithms for minimization.
References
- Matlab documentation from The MathWorks.
External links
Other Wikibooks
A number of other wikibooks use MATLAB to teach their subjects. The following wikibooks make use of MATLAB:
