View
214
Download
0
Category
Preview:
Citation preview
7/29/2019 Chapter 1Matlab
1/12
Introduction to MATLAB for DSP Nagaraja N S.,SSE,Mangalore
1
Chapter 1.
Introduction to MATLAB
What is MATLAB?
MATLAB (MATrix LABoratory)is a computer language for technical computing,
mathematical analysis, and system simulation. It is an interactive tool and is
specifically designed to solve problems in the engineering fields, sciences, and business
applications.
MATLAB can be used for
Mathematical computations
Modeling and simulation of systems
Data (signal) analysis and processing
Visualization and graphics and
Algorithm development.
MATLAB is an interactive system whose basic data element is a matrix ( an array ).
It provides a collection of application-specific solutions called toolboxes.
The MATLAB System:
The following major parts of MATLAB system are widely used.
Desktop Tools and Development Environment: This is the set of tools and facilities
that help user to use MATLAB functions and files. It includes the MATLAB desktop and
Command Window, a command history, an editor and debugger, a code analyzer and
other reports, and browsers for viewing help, the workspace, files, and the search path.
The MATLAB Mathematical Function Library: This is a vast collection of
computational algorithms. The comprehensive collections of MATLAB functions (M-
files) that extend the MATLAB environment to solve particular classes of problems are
called Toolboxes.
These MATLAB functions (M-files) are ranging from elementary functions, like sum,
sine, cosine, and complex arithmetic, to more sophisticated functions to solve problems
of science and engineering.
Areas in which toolboxes are available include signal processing, control systems,
neural networks, fuzzy logic, wavelets, simulation, and many others.
The MATLAB Language: This is a high-level matrix/array language whose basic data
element is a matrix (array).The language hascontrol flow statements, functions, datastructures, input/output, and object-oriented programming features.
7/29/2019 Chapter 1Matlab
2/12
Introduction to MATLAB for DSP Nagaraja N S.,SSE,Mangalore
2
That is data variable can be directly assigned a value of any data type. It does not
require dimensioning. That is it is not required to declare the type and dimension of the
variable. This simplifies solving many technical computing problems, especially those
with matrix and vector formulations.
It allows to rapidly create quick and dirty throw-away programs. That is it is
possible to do calculations one line at a time at the command line using the same
syntax as would be used in a file.
Matlab also provides to create large and complex application programs.
It's even possible to write loops and branches at the command line if you want to! Of
course this would lead to a lot of wasted effort a lot of the time, so doing anything
beyond very simple calculations, testing to see if a certain function, syntax, etc. works,
or calling a function you put into an .m file should be done within an .m file
MATLAB is interesting in that it is dynamically compiled. We know that when the
programming languages like C or C++ are used, the code is compiled by explicitely
running through a compiler to generate an execuable file and run the executable file
to obtain a result. But in Matlab the code is neither run through a compiler nor a
execuable file is created. Instead, MATLAB simply goes line by line and performs the
calculations without the need for an executable.
Graphics: MATLAB has extensive facilities for displaying vectors and matrices as
graphs, as well as annotating and printing these graphs. It includes high-level
functions for two-dimensional and three-dimensional data visualization, image
processing, animation, and presentation graphics. It also includes low-level functions
that allow you to fully customize the appearance of graphics as well as to build
complete graphical user interfaces on your MATLAB applications.
MATLAB External Interfaces:This is a library that allows you to write C and Fortran
programs that nteract with MATLAB. It includes facilities for calling routines from
MATLAB dynamic linking), calling MATLAB as a computational engine, and for reading
and writing MAT-files.
Starting MATLAB:
It is assumed that the software is installed on the computer. The user can start the
MATLAB by clicking on the icon on the desktop and the MATLAB desktop window
opens.
7/29/2019 Chapter 1Matlab
3/12
Introduction to MATLAB for DSP Nagaraja N S.,SSE,Mangalore
3
The default view of the various windows of MATLAB contains the four smaller windows:
The Command Window: The Command Window is MATLAB's main window and
can be used for executing commands, opening other windows, running programs
written by the user, and managing the software.
The Current Directory Window: MATLAB file operations use the currentdirectory and the search path as reference points. Any file you want to run must
either be in the current directory or on the search path.
The Workspace Window: The MATLAB workspace consists of the set of variables
(named arrays) built up during a MATLAB session and stored in memory.
The Command History Window: Statements you enter in the CommandWindow are logged in the Command History. From the Command History, you
can view and search for previously run statements, as well as copy and execute
selected statements.
Working In The Command Window
Once we get into MATLAB, we meet a prompt >> called the MATLAB prompt.
This prompt receives a user command and processes it providing the output on the
next line.
The command clc clears the Matlab command window and moves the cursor to the
top of that window.
Defining Scalar Variables
7/29/2019 Chapter 1Matlab
4/12
Introduction to MATLAB for DSP Nagaraja N S.,SSE,Mangalore
4
MATLAB allows you create variables on the fly. A variable is a name that is
assigned a numerical value which can be used in mathematical expressions, in
functions, and in any MATLAB statements and commands. A variable is actually a
name of a memory location.
In MATLAB the = sign, called the assignment operator assigns a value to a variable.
Enter the following on command (prompt is also shown) to assign a value 5 to a
variable named x.
>> x = 10 ENTER
MATLAB responds to the entry as
x =
10
Note that MATLAB just considers scalars as 1 x 1 matrices.The variables created can be cleared(deleted) by using the function clear.
>>clear ENTER
Removes all defined variables from memory.>>clear variable_nameCan clear a single variable named variable_name.
Matlab As A Computational Tool
Matlab can be used to evaluate any expressions.This is achieved by simply entering
the mathematical expression at the command prompt.
>> 2 + 6 - 5 ENTER
MATLAB responds with
ans =
3
In the above expressions no variable is defied.The result of evaluation of an expression
is assigned to a default variable ans (short form of answer).We can make use of the
result using the default variable.For Example
>>ans/3 ENTER
MATLAB responds with
ans =
2.500
The basic arithmetic operators used in MATLAB are +, -, *, /, ^ and these are used in
conjunction with brackets: ( ). The symbol * is for multiplication and ^ is used to get
exponents (powers): 2^4=16.
7/29/2019 Chapter 1Matlab
5/12
Introduction to MATLAB for DSP Nagaraja N S.,SSE,Mangalore
5
Matlab works according to the priorities:
1. quantities in brackets,
2. powers ( Example: 2 + 3^2 2 + 9 = 11)
3. * or /, working left to right ( Example: 3*4/5 12/5),
4. + -, working left to right ( Example: 3+4-5 7-5),
Thus the evaluation of the matlab expression
>> 2 + 3/4*5 ENTER
is 2 + (3/4)*5 by priority 3 and not 2 + 3/(4*5) and Matlab responds with
ans =
5.7500
Creating Matrices
The basic data element in MATLAB is a matrix. A scalar in MATLAB is a 1x1 matrix,and a vector ( array ) is a 1x n (or n x 1) matrix.
To create an array of 4 elements say x={ 3,5,7,9} type
>> x= [3, 5, 7, 9] ENTER
The response is
x =
3 5 7 9
The elements of array are written within square brackets [ ] and are separated by
comma or a space.
The : (colon) operator is used to create a vector (array).
The general format of a command to generate array is
Starting value: Increment : Maximum value that the variable can take
To create a vector with elements between 0 and 20 evenly spaced in increments of 2.
(this method is frequently used to create a time vector):
>> y = 0:2:20 ENTER
y =
0 2 4 6 8 10 12 14 16 18 20
With the default increment 1, the format reduces to
Starting value: Maximum value that the variable can take
To generate an array of elements whose values range from 1 to 4 i.e., {1, 2, 3, 4}
>> y = 1:4 ENTER
Generates the array and outputs
y =
1 2 3 4
7/29/2019 Chapter 1Matlab
6/12
Introduction to MATLAB for DSP Nagaraja N S.,SSE,Mangalore
6
In case of multi dimensional arrays (m X n matrix) the rows are separated by semi
colon.
For example, create a 3x3 matrix A that has [2 ,4, 6] in the first row,[ 1, 3, 5] in the
second row, and 3s in the third row:
>> A = [2 4 6; 1 3 5; 3 3 3] ENTER
The semicolon is used here to separate rows in the matrix.
MATLAB responses with
A =
2 4 6
1 3 5
3 3 3
To access a particular element of matrix A: say from 1st row 2nd column.
>> A(1,2) ENTER
ans =
4
The : (colon) operator is used to access all the elements of a row or column.
To access a particular row of A: say complete 2nd row
>> A(2,:) ENTER
Returns 2nd row of A as
ans =
1 3 5
Suppressing Output with Semicolon (;)
It is useful to have MATLAB print the results of the calculations.
In computations having multiple statements the intermediate results need not be
displayed.MATLAB will print the result of every assignment operation unless the
expression on the right hand side is terminated with a semicolon.
>> y = 6; ENTER
Note the colon (;) in the expression and Observe that nothing is displayed following the
entry. But obviously, MATLAB does keep the value in memory. To see this type
>> y ENTER
Response is
y =
6
Note that the colon (;) is removed in the expression and the value that was stored in
variable y is displayed following the entry.
7/29/2019 Chapter 1Matlab
7/12
Introduction to MATLAB for DSP Nagaraja N S.,SSE,Mangalore
7
In case of the entry
>> A = [1 1 1; 2 2 2; 3 3 3]; ENTER
Matrix A has been created but MATLAB doesnt display it. The semicolon is necessary
when youre running long scripts and dont want everything written out to the screen!
Unlike C or C++ Semicolon (;) at the end of statement is NOT a MUST in MATLAB.
Functions
The MATLAB application is built around the MATLAB language .In addition to basic
arithmetic operations, expressions in MATLAB can include functions. MATLAB has a
very large library of built-in functions. A function has a name and an argument in
parentheses. For example, the function that calculates the square root of a number
is sqrt(x). Its name is sqrt, and the argument is x. When the function is used, the
argument can be a number, a variable that has been assigned a numerical value.>>sqrt(36) ENTER
Returns
ans=
6
>>x = 49; sqrt(x) ENTER
Returns
ans =7
Commonly used constants such as pi, and i or j for the square root of -1, are also
incorporated into Matlab.
The helpcommand provides the information about the usage of any existing command.
The general format is
>> help [function name]
For example>>help sin
Returns the descreption of the usage of the function sin.
The function lookfor finds all functions in all directories that might have
something to do with a given key word.
For example to find out the function which performs inverse of a matrix type
>> lookfor inverse
Lists at least a dozen matches,including the required function inv.
DOC command displays the HTML documentation for the MATLAB function.
>> doc sin
7/29/2019 Chapter 1Matlab
8/12
Introduction to MATLAB for DSP Nagaraja N S.,SSE,Mangalore
8
Displays HTML documentation for the function sin in the Help browser.
Plotting
One thing we want to do to with functions is plot them. It is also easy to create plots in
Matlab. For example, to plot f as a function of t, type plot(t,f). A new window will come
up with a plot of f(x) as a function of x.
To plot a sine wave as a function of time.
First make a time vector (the semicolon after each statement tells Matlab we don't want
to see all the values)
>> t=0:0.25:8
Compute the sin value at each time.
t =
Columns 1 through 11
0 0.2500 0.5000 0.7500 1.0000 1.2500 1.5000 1.7500 2.0000 2.2500 2.5000
Columns 12 through 22
2.7500 3.0000 3.2500 3.5000 3.7500 4.0000 4.2500 4.5000 4.7500 5.0000 5.2500
Columns 23 through 33
5.5000 5.7500 6.0000 6.2500 6.5000 6.7500 7.0000 7.2500 7.5000 7.7500 8.0000
>> y = sin(t)
y =
Columns 1 through 11
0 0.2474 0.4794 0.6816 0.8415 0.9490 0.9975 0.9840 0.9093 0.7781 0.5985
Columns 12 through 22
0.3817 0.1411 -0.1082 -0.3508 -0.5716 -0.7568 -0.8950 -0.9775 -0.9993 -0.9589 -0.8589
Columns 23 through 33
-0.7055 -0.5083 -0.2794 -0.0332 0.2151 0.4500 0.6570 0.8231 0.9380 0.9946 0.9894
plot the computed values
>> plot(t,y)
Opens the figure
7/29/2019 Chapter 1Matlab
9/12
Introduction to MATLAB for DSP Nagaraja N S.,SSE,Mangalore
9
To plot a discrete sequence or "stem" plot function stem can be used.Thisplots thedata sequence as stems from the x axis terminated with circles for the data value.For exampleTo plot a sequence y=[10 4 5 7 8] define the sequence>> y=[10 4 5 7 8]y =10 4 5 7 8Definee the time index>> n = [0:4]n=0 1 2 3 4Now plot the sequence>>stem(n,y)Opens the figure
Matlab has many features for plotting.
To label the figure which indecates the axes use xlabel and ylabel functions.
To define the x-axis, type
>>xlabel(x ---- >)
Creates a label on the x-axis.
To define the y-axis typeylabel(f(x)--- >).This creates a label on the y-axis.
To place a title on the graph the command title(Function f) can be used.
The function axis is used to control axis scaling and appearance.
axis([XMIN XMAX YMIN YMAX]) sets scaling for the x- and y-axes on the current plot.
>> axis ([-1,10,-1,11])
Sets the x axis scale from -1 to 10 and y axis scale from -1 to 11
7/29/2019 Chapter 1Matlab
10/12
Introduction to MATLAB for DSP Nagaraja N S.,SSE,Mangalore
10
Using several graph windows
The function figure can be used to create a new figure window. Multiple figure windows
can be opened for different plots.
Plotting several axes in the same graph window
The subplot function breaks the Figure window into m X n (read as m-by-n) sub
windows, selects the p-th sub window for the current plot. The axes are counted along
the top row of the Figure window, then the second row, etc.
For example, subplot (3,2,n) divides figure in to 3 rows 2 columns and selects the
figure n for the plot of the function using plot or stem.
(n can take values 1 to 6 (i.e, 3 x 2) ;only one at a time and only selected portion of the
figure will be active)
>>subplot(3,2,4)
>> stem(x,y)
Will result in plot of the function at position with figure number 4.
7/29/2019 Chapter 1Matlab
11/12
Introduction to MATLAB for DSP Nagaraja N S.,SSE,Mangalore
11
The closeall command closes all figures.
PROGRAMMING IN MATLAB
M-files: Scripts and functions
To do computations of any significant length, it is required to construct long (and
sometimes complex) sequences of statements. This can be done by writing the
commands in a file and calling it from within MATLAB. Such files are called m-files
because they must have the filename extension .m (for example, program1.m).
Comments can be added to m-file, by putting a % at the beginning of a comment line.
Anything after % is ignored until a new line. Use this to make your code readable -
document it for yourself and others!
There are two types of m-files: script filesandfunction files.
Script files contain a sequence of usual MATLAB commands that are executed in
order.
Function files are the user defined functions that can be used as commands that
often have input and output. Commands for specific problems can be created. These
functions will have the same status as other MATLAB commands.
Editor/ Debugger
Use the Editor/Debugger to create and debug M-files. The Editor/Debugger provides a
graphical user interface for text editing, as well as for M-file debugging.
To create or edit an M-file use File > New or File > Open.
The editor can also be opened through the command edit.
7/29/2019 Chapter 1Matlab
12/12
Introduction to MATLAB for DSP Nagaraja N S.,SSE,Mangalore
12
>> edit program1.m ENTER
Running M-Files
In the Editor/Debugger, to run a script M-file, or a function M-file that requires no
input arguments, click the Run button on the toolbar. The button's tooltip includes the
name of the file to be run, which is useful when you have more than one file open.
Alternatively, select Debug > Run filename.
If the file is not in a directory on the search path or in the current directory, you can
either change the current directory to the directory containing the file, or you can add
the directory containing the file to the search path.(Is to be done in command window.)
If the file has unsaved changes, running it from the Editor/Debugger automatically
saves the changes before running.
To run the script file from the command prompt simply type the name of the m-file
>> program1 ENTER
The program runs.
INPUT Prompt for user input.
The input command gives the user the prompt in the text string and then gives the
user the prompt in the text string and then waits for input from the keyboard.
waits for input from the keyboard.
>> R = INPUT(Enter the Number : -)
Displays the text string
>> Enter the Number : -
and then waits for input from the keyboard.
The input can be any MATLAB expression, which is evaluated, using the variables in the
current workspace, and the result returned in R. If the user presses the return key
without entering anything, INPUT returns an empty matrix.It allows to write interactive
programs.
Recommended