|
|
| Simulink | | Control Systems Applications | | Symbolic Calculation | | Side Notes | | About this site | |
Introduction
MATLAB (Matrix Laboratory), a product of Mathworks, is a scientific software package designed to provide integrated numeric computation and graphics visualization in high-level programming language. MATLAB program consists of standard and specialized toolboxes allowing users to take advantage of the matrix algorithm based on LINPACK1 and EISPACK2 projects. MATLAB offers interactive features allowing the users great flexibility in the manipulation of data and in the form of matrix arrays for computation and visualization. MATLAB inputs can be entered at the "command line" or from "mfiles", which contains a programming-like set of instructions to be executed by MATLAB. In the aspect of programming, MATLAB works differently from FORTRAN, C, or Basic, e.g. no dimensioning required for matrix arrays and no object code file generated. MATLAB offers some standard toolboxes and many optional toolboxes (at extra cost, of course!) such as financial toolbox and statistics toolbox. Users may create their own toolboxes consisted of "mfiles" written for specific applications. The original version of MATLAB was written in FORTRAN but later was rewritten in C. You are encouraged to use MATLAB's on-line help files for functions and commands associated with available toolboxes. MATLAB consists of a collection of toolboxes. These toolboxes contain library files called M-Files, which are also functions or command names, executable from the Command window.
Conventions Used in This Tutorial
Bold face: signifies a command or string of commands to be entered exactly as shown, a display by Matlab echo, or a Matlab reserved word, e.g., function name, command, etc. It also represents a keyboard command, e.g. CTRL+Q, or menu selection sequence when used with ">" sign.
Italic: when used with a command, it signifies an input to be specifed by the user. For example, eig(matrix name) means a user-defined matrix (variable) to be entered in place of matrix name.
Getting Started
To start Matlab in an Unix or Linux shell, enter matlab at system prompt.
To start Matlab in Windows XP or Windows 7, double click on Matlab icon located the desktop
If the icon is not available, you may find the executable matlab (application) file named "matlab" typically located in Program Files > Matlab > Matlab 2011a > bin folder.
Once Matlab's initializing process is completed, a Matlab desktop environment will appear providing a set of subwindows, a.k.a browsers. In this desktop environment you may define variables, manage files and objects, execute programs, and view command history.
A typical Matlab desktop is shown below.
![]()
By default, Matlab displays a set of windows, which you may customize to fit your preference.
Sub-window 1 functions like Windows Explorer, where the user can access files from the a specific directory (folder).
Sub-window 2 is the main window where commands are entered and results are displayed. In this window, you may also take advantage of the instant function call feature by clicking on the function icon (fx) and navigate through to the desired pre-defined function. Alternately, you may use key command: SHIFT+F1
.
Sub-window 3 displays user-defined variables. You may also list all defined variables in a Matlab session by issuing the command who in Command Window.
Sub-window 4 displays the history of commands in the current Matlab session.
You may close, restore, and resize any of these sub-windows.
Setting Path...
M files called from the Command Window are automatically located by Matlab, as long as the file's path is defined. This is important because the mfiles you've created would not be automatically recognized by Matlab is its folder (directory) has not been defined in Matlab's "Search Path".
To define the path, select:
File > Set Path...
A window like one shown below will pop up. Click on Add Folder... button then browse through the directories to locate the desired m file.
Defining Variables...
One of the easy ways to learn MATLAB is to understand how MATLAB handles matrices. Think in terms of arrays and vectors when you work with MATLAB. For example, an array of data A = 1, 0, 9, 11, 5 is a 1x5 matrix, and a scalar number 9 is an 1x1 matrix. To store the array A in MATLAB, at the command prompt >> (in Command window), enter:
![]()
MATLAB will display or echo your input:
![]()
To suppress the echo, add a ";" at the end of the input line.
To verify the size of the input array or matrix, use the command "size" as shown below:
,
which verifies the dimension of matrix A as 1x5 (one row and five columns).In MATLAB, rows are separated by ";" and columns are separated by ",". For example, a 3x5 matrix B with the following elements:
first row: 1, 0, 9, 4, 3
second row: 0, 8, 4, 2, 7
third row: 14, 90, 0, 43, 25would be entered in MATLAB as follow:
![]()
Note that you may use a space in place of the comma in separating the column entries.
You may add, subtract, multiply, and divide matrices with simple operation in MATLAB. Please keep in mind of the rules concerning matrix operations such as dimensional compatibility issue, e.g., you may not pre-multiply a 2x3 matrix with a 4x2 matrix - the dimensions must agree.
You may extract a certain group or element from an existing matrix. Say you wish to create a new array C from the second row of matrix B. Specify the row number and ":" for all columns in that row as shown below:
![]()
Similarly, You may also form a matrix from the element of an existing matrix:
![]()
Here, a square matrix D has been created from the specified elements of matrix B.
You may also delete rows and columns from a matrix using a pair of square brackets. For example, to delete the third column of matrix B, you simply enter
![]()
and MATLAB will return:
![]()
Note that the column 3 is excluded.
Alternately, you may define these variables (matrices) by clicking on the New Variable icon in Workspace browser as shown below.
![]()
Once a variable name is entered, you may double click on the icon associated with the variable name (in Workspace browser) to bring up the Array Editor. From the Array Editor, you may enter the values as you would in a typical spreadsheet program like Excel.
You may create a new variable from selected elements of the existing array by highlighting the group of elements you wish to use, then right-click with the cursor pointing in the selected area to bring up the context menu. Select the Create Variable from Selection choice. Matlab will assign an "unnamed" label to your new varible. To modify this, right-click the unnamed variable and select Rename from the pop-up menu.
Data from the Array Editor browser could be exchanged with OpenOffice Calc spreadsheet program via the clipboard. (OpenOffice works fine for me in both Windows and Linux environments. I don't use Excel but I believe the file I/O interface with Excel is supported by Matlab 7 and R2006a).
Working with Arrays...
MATLAB treats arithmetic operations on arrays in an element-by-element manner. This operation is accomplished by including a dot or a period before the arithmetic operator such as multiplication, division, etc. The table below gives a list of such operators with examples of how these operators are being used.
For examples in the table below, the following matrices are used:
![]()
![]()
Operation Description Example (MATLAB actual inputs and outputs) + Addition - Substraction
* Multiplication .* Element-by-element multiplication.
Note that this is different from multiplication of two matrices.![]()
Note that this is not the same as C = A*B
/ Right matrix division.
Dividing matrix B into matrix A\ Left matrix division.
Dividing A into B. This is equivalent to inv(A)*B. Note that X = C is the solution to A*X=B./ Element-by-element division
note that D(2,1) is undefined due to the zero at B(2,1).\ Element-by-element left division.Note that left division in this particular example means elements of B divided by the corresponding elements of A. .^ Element-by-element power
Transposing a matrix in MATLAB involves a simple prime notation ( ' ) after the defined matrix as shown below:
Example:
Sorting columns and rows follow the syntax: B=sort(A,dim), where dim is the dimension of the matrix with the value 1 for column; 2 for row. Matrix A is the variable specified by the user.
Example:
Sorting columns:
Note that without dim being specified, the default value is 1. The default setting is ascending order. The variable name of the sorted matrix can be omitted if no needed.
Sorting column in descending order:
Sorting row in descending order
The inverse of matrix A can be obtained with the command:
Eigenvalues and Eigenvectors can easily be obtained with the command [V,E]=eig(matrix name):
![]()
where matrix V consists of Eigenvectors . The corresponding Eigenvalues are shown in matrix E. Eigen values alone can be obtained without the notation "[V,E]":
Command Input Assistance Feature
Not sure how a command is spelled? Too lazy to type the complete command? Well, Matlab 7 programmers have added a new feature to answer these questions. Now you may type only the first few letters of the command and use the TAB key to see what commands are available or to let Matlab complete the command typing for you. For example, if you wish to enter the command nyqchart. You may simply type nyq then press the TAB key. A list of commands with spelling close to what you enter will appear in a pop-up menu.
If the highlighted command is what you want, then another gentle stroke on the TAB key will complete the command input for you.
Matlab handles floating-point numbers in either single precsion or double precision (defaut setting) format. While double precision numbers use 64 bits, single precision numbers use 32 bits, based on IEEE Standard 754. You may convert a double precision number to a single precision number using the command single(number).
MATLAB provides mathematical expression just like most other programming languages. These expressions are variables, numbers, operators (+, -, *, /, etc.), and functions. To 'accommodate' EE folks either i or j can be used to describe the imaginary number (square root of minus one). There are standard (built-in) functions in MATLAB like sin, cos, inv, exp, sqrt, etc. Users may also write user-defined functions to perform calculation like a subroutine function in C or FORTRAN.
You may control the displayed string by using the commands
format typeformat ('type')
Available options for type are:
short e (scientific notation, five-digit floating point)
long e (5 digit for single precision and 15 for double precision)
short g (five digits)
long g (7 digits for single precision and 15 for double precision)
format bank (two digit decimal)
format rat (rational)
format hex (hexadecimal)
format loose (line feed added)
format compact (line feed suppressed).
Refer to Matlab's help file (help format) for more info. Unfortunately, Matlab's number display control is not set up in the same way as in most calculators, e.g. fixing the display digits trailing the decimal. However, the user may display a number with two digits trailing the decimal by using bank format. The following examples demonstrate how Matlab format command displays numbers.Examples:
>> w=pi/2
w =
1.5708
short g (5-digit number) is Matlab's default format.
>> format long g
>> ww =
1.5707963267949
15-digit display indicates double-precision setting (default)
To display single-precision result, use the command single(variable) as illustrated below:
>> single(w)
ans =
1.570796
Note that ω is now truncated to a 7-digit number.
To display ω in scientific long format, use
>> format long e
Matlab display:
w =
1.570796326794897e+000
Short scientific format can be specified with
>> format short e
Matlab's answer:
w =
1.5708e+000
To check with Matlab if the results are the same for long g of 2*w and double(2*w), we could ask Matlab with the following command:
>> double(pi)==2*w
Matlab's answer:
ans =
1
which confirms that the two quantities indeed are the same! (1 for yes and 0 for no).
Equivalently, you may ask the question in a different way:
>> double(pi)~=2*w
ans =
0
It means "no, the two are not unequal!".
Bank format reduces or truncates the number to 2 digit after the decimal (dollars and cents).
>> format bank
>> wMatlab's answer:
w =
1.57
Quitting Matlab
To quit Matlab, simply enter exit at Matlab command prompt >> or CTRL+Q (Windows). If your Matlab process is "frozen" (crashed) in Windows you may kill the process from Windows Task Manager (CTRL+ALT+DEL) by selecting Matlab process and click on End Process button. In UNIX or LINUX environment, Matlab rarely crashes. In case you need to kill a Matlab session, find the process ID (PID) number and issue the command kill -9 [process ID].
______________
1LINPACK is a collection of Fortran subroutines that analyze and solve linear equations and linear least-squares problems. The package solves linear systems whose matrices are general, banded, symmetric indefinite, symmetric positive definite, triangular, and tridiagonal square. In addition, the package computes the QR and singular value decompositions of rectangular matrices and applies them to least-squares problems. LINPACK uses column-oriented algorithms to increase efficiency by preserving locality of reference. [source: NETLIB]
2EISPACK is a collection of Fortran subroutines that compute the eigenvalues and eigenvectors of nine classes of matrices: complex general, complex Hermitian, real general, real symmetric, real symmetric banded, real symmetric tridiagonal, special real tridiagonal, generalized real, and generalized real symmetric matices. In addition, two routines are included that use singular value decomposition to solve certain least-squares problems [source: NETLIB]
____________________________
| © MMXI. T. Nguyen.. All rights reserved. |