MATLAB WORKSHOP FOR BEGINNER
Postgraduate Excellence Event
School of Electrical Systems Engineering
Universiti Malaysia Perlis (UniMAP)
Malaysia
INTRODUCTION
SPEAKER
LEARNING OUTCOMES
At the end of the workshop:
1. Participants should be able to use MATLAB in research, data
analysis, creating functions, and mathematical presentations.
2. Participants should be able to solve scientific/research
problems using MATLAB
3. Participants should be able to model the data using MATLAB.
4. Participants should be able to create professional
graphs/plots for peer reviewed journals and international
conferences.
BASICS AND INTRODUCTION.
Installation.
The basic features.
Data formats and assignments
VECTOR AND MATRICES.
Creating vectors and matrices.
Accessing rows/columns for large data set.
Mathematical operations.
Special arrays and functions.
EXCEL SPREADSHEETS.
Importing excel spread sheet.
Plotting data.
GRAPHICS.
Two dimensional plotting functions.
Sub-plots.
Bar and 3-D bar graphs.
Polygons graphs.
Pie graphs.
Three dimensional plotting functions.
MATLAB PROGRAMMING.
Loops.
Branching with if.
Switch statement.
Branching with while.
Introduction: What is MATLAB?
Stands for MATrix LABoratory.
It is an interactive program for numerical computation and
data visualization.
MATLAB Deals mainly with matrices.
Using MATLAB, you can analyze data, develop algorithms,
and create models and applications..
The language, tools, and built in math functions enable you
to explore multiple approaches and reach a solution faster
than with spreadsheets or traditional programming languages,
such as C\C++ or Java.
MATLAB Workshop
Command Window - to
main window, enter
variables, run programs
Current Folder - purpose
as a shows the files in the
current directory
Command History window & logs commands
entered in the command
window
Workspace Window - to
provides information
about the variables that
are used
Editor Window - creates
and debugs script and
function files
Introduction
Type a valid expression, for example:
>> 5 + 5
When you click the Execute button, the result returned is:
ans = 10
Let us take up few more examples:
>> 3^2
ans = 9
>> 7/0
ans = Inf
>> 732 * 20.3
ans = 1.4860e+04
MATLAB Workshop
Introduction
Use of Semicolon (;) in MATLAB: indicates end of
statement. However, if you want to suppress and hide the
MATLAB output for an expression, add a semicolon after the
expression. For example,
>> x = 3;
>> y = x + 5
ans = 8
Adding comments: The percent symbol (%) is used for
indicating a comment line. For example,
>> x = 9
% assign the value 9 to x
Dr. Mahmoud A. M. Albreem
MATLAB Workshop
Introduction
MATLAB supports the following commonly used operators
and special characters:
+
*
.*
.
\
/
.\
./
:
()
[]
Plus; addition operator
Minus; subtraction operator
Scalar and matrix multiplication operator
Array multiplication operator
Scalar and matrix exponential operator
Array exponential operator
Left-division operator
Right-division operator
Array left-division operator
Array right-division operator
Colon; generates regularly spaced elements and represents an entire row or column
Parentheses; encloses function arguments and array indices; overrides precedence
Brackets; enclosures array elements
Decimal point
Ellipsis; line-continuation operator
, Comma; separates statements and elements in a row
; Semicolon; separates columns and suppresses display
% Percent signl designates a comment and specifies formatting
- Quote sign and trspose operator
Nonconjugated transpose operator
=
Assignment opertor
MATLAB Workshop
Introduction
The exist checks for existence file or variable
The clear command deletes all (or the specified) variable(s)
from the memory. For example:
>> clear x
>> clear
% it will delete x, wont display anything
% it will delete all variables in the
% workspace peacefully and unobtrusively
The clc command clears command window.
The Quit command stops MATLAB.
Dr. Mahmoud A. M. Albreem
MATLAB Workshop
Introduction
You can use MATLAB to do arithmetic as you would a
calculator. You can use + to add, - to subtract, * to
multiply, / to divide, and to exponentiate. For example:
>> 3^2 - (5+4)/2 + 6 * 3
ans =
22.5000
MATLAB prints the answer and assigns the value to a variable
called ans. If you want to perform further calculations with
the answer, you can use the variable ans rather than retype
the answer.
Dr. Mahmoud A. M. Albreem
MATLAB Workshop
Introduction
For example, you can compute the sum of the square and the
square root of the previous answer as follows:
>> ans^2 + sqrt(ans)
ans =
510.9934
Observe that MATLAB assigns a new value to ans with each
calculations.
Dr. Mahmoud A. M. Albreem
MATLAB Workshop
Introduction
Multiple Assignments: You can have multiple assignments
on the same line. For example,
>> a = 2; b = 7; c = a * b
c=
14
I have forgotten the variables!: The who command
displays all the variable names you have used.
>> who
MATLAB will execute the above statement and return the
following result:
Your variables are:
a
ans b
Dr. Mahmoud A. M. Albreem
MATLAB Workshop
Introduction
The format command: By default, MATLAB displays
numbers with four decimal place values. This is known as
short format. However, if you want more precision, you need
to use the format command.
The format long command displays 16 digits after decimal.
For example,
>> format long
>> x = 7 + 10/3+5^1.2
x=
17.231981640639408
Another example,
>> format short
>> x = 7 + 10/3+5^1.2
x=
17.2320
Dr. Mahmoud A. M. Albreem
MATLAB Workshop
Vectors and Matrices
Suppose you want to create a vector of values running from 1
to 9. Heres how to do it without typing each number:
>> X = 1:9
The increment can be specified as the second of three
arguments:
>> X = 0:2:10
Dr. Mahmoud A. M. Albreem
MATLAB Workshop
Vectors and Matrices
You can also use fractional or negative increments, for
example 0:0.1:1 or 100:-1:0.
To change the vector X from a row to a column vector, put a
prime() after X:
>> X
Dr. Mahmoud A. M. Albreem
MATLAB Workshop
Vectors and Matrices
You can perform mathematical operations on vectors. For
example, to square the elements of the vector X, type
>> X.^2
Typing X^2 would tell MATLAB to use matrix multiplication
to multiply X by itself and would produce an error message in
this case. Similarly, you must type .* or ./if you want to
multiply or divide vectors element-by-element. For example,
to multiply the elements of the vector X by the corresponding
elements of the vector Y, type
>> Y = [4 -3 5 -2 8 1]
>> X.*Y
Dr. Mahmoud A. M. Albreem
MATLAB Workshop
Vectors and Matrices
Creating arrays:
1
Row vector:
array = [1 5 7 9];
Column vector:
array = [1; 5; 7; 9];
Use a space to separate each element.
Use a semi-colon (;) to go down to the next row.
Column vector can also be created as:
array = [1 5 7 9];
After, MATLAB creates an array automatically, with the value
you specified, stored in MATLAB as array.
Dr. Mahmoud A. M. Albreem
MATLAB Workshop
Vectors and Matrices
Accessing elements in an array:
1
2
Use the name of the array; with round brackets ().
Inside the round brackets, specify the position of where you
want to access.
Examples:
1. array = [1 5 8 7];
2. num = array(2);
3. num = array(4);
to copy an entire array over, simply set another variable equal to the
1
array you
want to copy.
2
array2 = array
Dr. Mahmoud A. M. Albreem
MATLAB Workshop
Vectors and Matrices
Lets move onto matrices:
1
2
3
4
To create a matrix, very much like creating arrays
Use square braces [], then use the numbers you want
Use spaces to separate between the columns
Use semicolons (;) to go to each row
Dr. Mahmoud A. M. Albreem
MATLAB Workshop
Vectors and Matrices
A matrix is a rectangular array of numbers. Row and column
vectors, which we discussed above, are examples of matrices.
It can be entered in MATLAB, for example,
>> A = [16 2 3 13; 5 11 10 8; 9 7 6 12;4 14 15 1]
Dr. Mahmoud A. M. Albreem
MATLAB Workshop
Vectors and Matrices
Every variable in MATLAB is an array that can hold many
numbers. When you want to access selected elements of an
array, use indexing.
For example, consider the matrix A:
>> A = [16 2 3 13; 5 11 10 8; 9 7 6 12;4 14 15 1]
>> A(4,2)
>> A(8)
If you attempt to refer to elements outside an array on the
right side of an assignment statement, MATLAB throws an
error
Dr. Mahmoud A. M. Albreem
MATLAB Workshop
Vectors and Matrices
To access a range of values, use the colon operator just like
we did for arrays, but now use them for each dimension.
Examples:
1
To access rows 1-3 and columns 3-4,
B = M(1:3,3:4)
To access row 1 and columns 1-3,
B = M(1,1:3)
Dr. Mahmoud A. M. Albreem
MATLAB Workshop
Vectors and Matrices
Now on to modifying elements in arrays and matrices:
1
Do same thing with accessing elements or in groups
Flip the order of whats on which side of the equals sign
Example:
A = [1 2 3 4;
5 6 7 8;
9 6 4 3;
2 3 5 9]
A(3,4) = 27;
A(1:2,3:4) = [5 6; 99 22];
A(2,:) = [8 19 2 20];
A(:,3) = [5;4;3;2];
A(1:2,:) = 5;
Dr. Mahmoud A. M. Albreem
MATLAB Workshop
Vectors and Matrices
These functions return information about the shape and size
of a matrix:
length: Return the length of the longest dimension
size: Return the length of each dimension
Example: Using the numel function, find the average of all
values in matrix A:
>> [a b] = size(A)
>> c = length(A)
Dr. Mahmoud A. M. Albreem
MATLAB Workshop
Vectors and Matrices
The sort function sorts matrix elements along a specified
dimension. The syntax for the function is sort(matrix,
dimension)
To sort the columns of a matrix, specify 1 as the dimension
argument. To sort along rows, specify dimension as 2.
Example:
>> r = sort(A, 2, descend)
>> d = sort (A, ascend) % ascend is the default
Dr. Mahmoud A. M. Albreem
MATLAB Workshop
Vectors and Matrices - Special Arrays in MATLAB
In this section, we will discuss some functions that create
some special arrays. For all these functions, a single argument
creates a square array, double arguments create rectangular
array.
1
2
zeros(): function creates an array of all zeros.
ones(): function creates an array of all ones.
rand(): function creates an array of uniformly distributed
randome numbers on (0,1).
Dr. Mahmoud A. M. Albreem
MATLAB Workshop
Vectors and Matrices - Special Arrays in MATLAB
Example:
>> zeros(3)
>> zeros(2,3)
>> ones(3)
>> ones(2,3)
>> rand(3)
>> rand(2,3)
Dr. Mahmoud A. M. Albreem
MATLAB Workshop
Importing Excel Spreadsheets
Selecting the spreadsheet and variables interactively:
Select File > Import data
Dr. Mahmoud A. M. Albreem
MATLAB Workshop
Importing Excel Spreadsheets
Reading a specific worksheet and range of data. For example:
Consider the file climate.xls has been created.
To import the numeric data into a matrix, use xlsread with a
single return argument. xlsread ignores any leading row or
column of text in the numeric result:
ndata = xlsread(climate.xls, Temperatures)
To import both numeric data and text data, specify two return
values for xlsread:
[ndata, headertext] = xlsread(climate.xls,Temperatures)
To read an exact row of data, specify the range:
firstrow = xlsread('climate.xls', 'Temperatures', 'A2:B2')
secondrow = xlsread('climate.xls', 'Temperatures', 'A3:B3')
thirdrow = xlsread('climate.xls', 'Temperatures', 'A4:B4')
Dr. Mahmoud A. M. Albreem
MATLAB Workshop
M-Files
For complicated problems, the simple editing tools provided
by the Command Window and its history mechanism are
insufficient. A much better approach is to create an M-file.
There are two different kinds of M-files: script M-files and
function M-files.
Dr. Mahmoud A. M. Albreem
MATLAB Workshop
Script M-Files
We now show how to construct a script M-file to solve the
mathematical problem using Scrip M-files. Create a file
containing the following lines:
format long
x = [0.1 0.01 0.001];
y = sin(x)./x
We will assume that you have saved this file with the name
task1.m in your working directory, or in some director on your
path. You can name the file any way you like, but the .m
suffix is mandatory.
You can tell MATLAB to run (or execute) this script by typing
task1 in the Command Window.
Dr. Mahmoud A. M. Albreem
MATLAB Workshop
Function M-Files
You often need to repeat a process several times for different
input values of a parameter. For example, you can provide
different inputs to a built-in function to find an output that
meets a given criterion.
As you have already seen, you can use inline to define your
own functions.
In many situations, however, it is more convenient to define a
function using an M-file instead of an inline function.
Let us give a simple example:
function [a] = log3(x)
a = log(abs(x))./log(3);
Dr. Mahmoud A. M. Albreem
MATLAB Workshop
Graphics
In this section, we are going to talk about:
1
2
Two-Dimensional Plotting Functions.
Three-Dimensional Plotting Functions.
Dr. Mahmoud A. M. Albreem
MATLAB Workshop
Graphics - Two-Dimensional Plotting Functions
This table shows MATLAB 2-D plotting funcitons:
Dr. Mahmoud A. M. Albreem
MATLAB Workshop
Graphics - Two-Dimensional Plotting Functions
Lets start with 2-D plotting
1
Assuming that we have two variables, x and y and are both the
same size
To produce the most basic graph in MATLAB that plots y vs.
x, you just do:
plot(x,y)
Lets start off with a basic example: y = x
x = [1 2 3 4 5];
y = [1 2 3 4 5];
plot(x,y)
Dr. Mahmoud A. M. Albreem
MATLAB Workshop
Graphics - plot
What if we want to generated a large set of numbers? use the
following syntax:
array = first : increment : last;
OR
array = first : last; % Leaving increment
out defaults to a
step size of 1
To plot x2 + x + 1 on the interval from -2 to 2, we first make
a list of x values, and then type plot(x, x2 + x + 1).
Dr. Mahmoud A. M. Albreem
MATLAB Workshop
Graphics - linspace
Can also perform this using the linspace command
array = linspace(X1, X2, N)
array = linspace(X1, X2)
1
The first style generates an array of size N, with equally spaced
point between X1 and X2
The second style generates an array of the default size of 100
equally spaced points between X1 and X2
Dr. Mahmoud A. M. Albreem
MATLAB Workshop
Plots and Plotting Tools - linspace
Create 2-D Line Graph: this example shows how to create a
simply line graph. Use the linspace function to define x as a
vector of 100 linearly spaced values between 0 and 2.
>> x = linspace(0,2*pi,100);
>> y = sin(x);
>> plot(x,y)
Dr. Mahmoud A. M. Albreem
MATLAB Workshop
Plots and Plotting Tools - Two-Dimensional
Plotting Functions
Create Graph in New Figure Window: this example shows
how to create a new figure window, instead of plotting into
the current figure.
>> x = linspace(0,2*pi,25);
>> y = sin(x);
>> figure % Open a new figure window using the
% figure command
>> stairs(x,y) % Create a stairstep plot of
% y versus x.
figure(h): where h is an integer, creates a new figure window,
or makes figure h the current figure.
clf: clears the current figure window.
cla: deletes all plots and text from the current axes, i.e.
leaves only the x- and y-axes and their associated information.
Dr. Mahmoud A. M. Albreem
MATLAB Workshop
Plots and Plotting Tools - Two-Dimensional
Plotting Functions
Plot Multiple Lines: this example shows how to plot more
than one line by passing multiple x, y pairs to the plot
function.
>> x = linspace(0,2*pi,25);
>> y1 = sin(x);
>> y2 = sin(x-pi/4);
>> figure
>> plot(x,y1,x,y2)
Dr. Mahmoud A. M. Albreem
MATLAB Workshop
Plots and Plotting Tools - Two-Dimensional
Plotting Functions
Specify Line Style: this example shows how to create a plot
using a dashed line. Add the optional line specification
string-, to the x,y pair.
>> x = linspace(0,2*pi,25);
>> y = sin(x);
>> plot(x,y,--)
Dr. Mahmoud A. M. Albreem
MATLAB Workshop
Plots and Plotting Tools - Two-Dimensional
Plotting Functions
Specify Line Style and Color: this example shows how to
specify the line styles and line colors for a plot.
>> x = linspace(0,2*pi,100);
>> y1 = sin(x);
>> y2 = sin(x-pi/4);
>> plot(x,y1,--g,x,y2,:r)
Dr. Mahmoud A. M. Albreem
MATLAB Workshop
Plots and Plotting Tools - Two-Dimensional
Plotting Functions
Specify Line Style, Color, and Markers: this example
shows how to specify the line style, color and markers for two
sine waves.
>> x = linspace(0,2*pi,25);
>> y1 = sin(x);
>> y2 = sin(x-pi/4);
>> plot(x,y1,--go,x,y2,:r*)
Dr. Mahmoud A. M. Albreem
MATLAB Workshop
Graphics with plot
Dr. Mahmoud A. M. Albreem
MATLAB Workshop
Plots and Plotting Tools - Two-Dimensional
Plotting Functions
Add Title, Axis Labels, and Legend to Graph: this
example shows how to add a title, axis labels and a legend to
a graph using the title, xlabel, ylabel, and legend
functions.
>> x = linspace(-2*pi,2*pi,100);
>> y1 = sin(x);
>> y2 = cos(x);
>> plot(x,y1,x,y2)
>> title(Graph of Sine and Cosine Between -2\pi and 2\pi)
>> xlabel(-2\pi < x < 2\pi) % x-axis label
>> ylabel(since and cosine values) % y-axis label
>> legend(y = sin(x), y = cos(x))
Dr. Mahmoud A. M. Albreem
MATLAB Workshop
Plots and Plotting Tools - Two-Dimensional
Plotting Functions
One Legend Entry for Group of Objects: this example
shows how to group a set of lines together into one legend
entry. For example, plot four sine waves and four cosine
waves.
>> figure
>> hold on
>> t = linspace(0,2*pi,100);
>> p(1) = plot(t,sin(t),b);
>> p(2) = plot(t,sin(t+1/7),b);
>> p(3) = plot(t,sin(t+2/7),b);
>> p(4) = plot(t,sin(t+3/7),b);
>> p(5) = plot(t,cos(t),g);
>> p(6) = plot(t,cos(t+1/7),g);
>> p(7) = plot(t,cos(t+2/7),g);
>> p(8) = plot(t,cos(t+3/7),g);
>> hold off
>> g1 = hggroup;
>> g2 = hggroup;
>> set(p(1:4),Parent,g1)
>> set(p(5:8),Parent,g2)
>> legend([g1,g2],sine,cosine)
Dr. Mahmoud A. M. Albreem
MATLAB Workshop
Graphics with plot
Example:
x = 0:pi/100:2*pi;
y = sin(x);
plot(x,y)
hold on
y2 = cos(x);
plot(x,y2,r:)
legend(sin(x),cos(x))
grid
Dr. Mahmoud A. M. Albreem
MATLAB Workshop
Plots and Plotting Tools - Two-Dimensional
Plotting Functions
Lets say we want to plot multiple graphs in separate plots on
the same window. We should use the command subplot.
This command treats the window as having multiple slots.
Each slot takes in a graph
How do we use the command?
subplot(m,n,p);
These determine the number of rows (m) and columns (n) for
the amount of graphs you want. p chooses which location in
the window the plot should go to
h = subplot(m,n,p) or subplot(mnp) breaks the figure
window into an m-by-n matrix of small axes, selects the pth
axes object for the current plot, and returns the axes handle.
The axes are counted along the top row of the figure window,
then the second row, etc.
Dr. Mahmoud A. M. Albreem
MATLAB Workshop
Plots and Plotting Tools - Two-Dimensional
Plotting Functions
Example:
To make a window that has 4 plots: 2 rows and columns
1 Do subplot(2,2,1): Specify the top left corner
2 Do subplot(2,2,2): Specify the top right corner
3 Do subplot(2,2,3): Specify the bottom left corner
4 Do subplot(2,2,4): Specify the bottom right corner
Dr. Mahmoud A. M. Albreem
MATLAB Workshop
Plots and Plotting Tools - Two-Dimensional
Plotting Functions
Use subplot to create a figure containing a2-by-2grid of
graphs:
>> x = linspace(-5,5); % define x
>> y1 = sin(x); % define y1
>> figure % create new figure
>> subplot(2,2,1) % first subplot
>> plot(x,y1)
>> title(First subplot)
>> y2 = sin(2*x); % define y2
>> subplot(2,2,2) % second subplot
>> plot(x,y2)
>> title(Second subplot)
>> y3 = sin(4*x); % define y3
>> y4 = sin(6*x); % define y4
>> subplot(2,2,3); % third subplot
>> plot(x,y3)
>> title(Third subplot)
>> subplot(2,2,4) % fourth subplot
>> plot(x,y4)
>> title(Fourth subplot)
Dr. Mahmoud A. M. Albreem
MATLAB Workshop
Bar Graphs
Lets move to bar plot: Creating a bar graph of an m-by-n
matrix creates m groups of n barseries objects. Each barseries
object contains the data for corresponding x values of each
bar group (as indicated by the coloring of the bars).
Dr. Mahmoud A. M. Albreem
MATLAB Workshop
Bar Graphs
The bar function distributes bars along the x-axis. Elements
in the same row of a matrix are grouped together.
For example, if a matrix has five row and three columns, the
bar displays five groups of three bars along the x-axis. The
first cluster of bars represents the elements in the first row of
Y.
>> Y = [5,2,1
8,7,3
8,8,6
5,5,5
4,3,2];
>> figure
>> bar(Y)
Dr. Mahmoud A. M. Albreem
MATLAB Workshop
3-D Bar Graph
The bar3 function draws each element as a separate 3-D
block and distributes the elements of each column along the
y-axis.
>> Y = [5,2,1
8,7,3
9,8,6
5,5,5
4,3,2];
>> bar3(Y)
To stack the elements in a row, specify the stacked option
for the bar3 function.
>> figure
>> bar3(Y,stacked)
Dr. Mahmoud A. M. Albreem
MATLAB Workshop
Polygons
patch: create one or more filled polygons. For example,
>> xdata = [1;5;3];
>> ydata = [3;2;5];
>> patch(xdata,ydata,w)
Dr. Mahmoud A. M. Albreem
MATLAB Workshop
Pie Graph
Define x and create a pie chart.
>> x = [1,2,3];
>> figure
>> pie(x)
>> legend(Product A,Product B,Product C)
% OR
>> labels = {Product A,Product B,Product C}
>> legend(labels,Location,Southoutside,...
Orientation,horizontal)
Dr. Mahmoud A. M. Albreem
MATLAB Workshop
Graphs
Lets move onto 3-D plots!
Here are the steps:
1
2
Create a function header of two variables
Figure out the range of x and y values you want, then create a
grid of these x and y points
Use the function handler to create the output points in the
third dimension (Z)
Use a function that plots this triplet of arrays in 3-D
Dr. Mahmoud A. M. Albreem
MATLAB Workshop
Graphs
How do we generate a grid of x and y values?
1
Use the meshgrid function. This function will output two
matrices, X and Y
X contains what the x co-ordinates are in the grid of points we
want
Y contains what the y co-ordinates are in the grid of points we
want
You need to specify the range of x and y values we want to plot
[X,Y] = meshgrid(x1:x2,y1:y2)
[X,Y] = meshgrid(x1:inc:x2,y1:inc:y2)
x1,x2 determine the beginning and ending x values
respectively. y1, y2 determine the beginning and ending y
values respectively. We can optionally specify inc which
specifies the step size, just like what we have seen earlier
Dr. Mahmoud A. M. Albreem
MATLAB Workshop
Graphs
Now, how do we create 3-D plots? Use either the surf or
mesh commands:
1
surf(x,y,z): the z values all have different colors assigned to
them and is a closed plot
mesh(x,y,z): the z values all have different colors assigned to
them, but only draws lines through the points
For each function, you specify a triplet of x, y, and z values of
all the same size
Dr. Mahmoud A. M. Albreem
MATLAB Workshop
Graphs
Example: Lets plot the following function
f(x , y ) = xex2y2
f = @(x,y) x.*exp(-x.^2 - y.^2);
[X Y] = meshgrid(-2:0.2:2, -2:0.2:2);
Z = f(X,Y);
surf(X,Y,Z);
xlabel(x); ylabel(y); zlabel(z);
figure;
mesh(X,Y,Z)
xlabel(x); ylabel(y); zlabel(z);
Dr. Mahmoud A. M. Albreem
MATLAB Workshop
MATLAB Programming
Every time you create an M-file, you are writing a computer
program using the MATLAB programming language. You can
do quite a lot in MATLAB using no more than the most basic
programming techniques that we have already introduced.
Dr. Mahmoud A. M. Albreem
MATLAB Workshop
MATLAB Programming (Loops)
The for loop allows us to repeat certain commands. If you
want to repeat some action in a predetermined way, you can
use the for loop. The for loop will loop around some
statement, and you must tell MATLAB where to start and
where to end. For example,
>> for j = 1 : 4
j+2
end
ans =
3
ans =
4
ans =
5
ans =
6
Dr. Mahmoud A. M. Albreem
MATLAB Workshop
MATLAB Programming (Loops)
Another example:
>> x = 1:10;
>> for i = 1 : 10
x2(i) = x(i)^2;
end
>> x2
x2 =
1 4 9 16
25
Dr. Mahmoud A. M. Albreem
36
49
64
MATLAB Workshop
81
100
MATLAB Programming (Loops)
In the following example, we calculate the square of the
entries in a matrix.
>> A = [1 5 -3;2 4 0;-1 6 9];
>> [a b] = size(A);
>> for i = 1 : a
for j = 1 : b % called nested for loop
A2(i,j) = A(i,j)^2;
end
end
>> A2
A2 =
1 25 9
4 8
0
1 36 81
Dr. Mahmoud A. M. Albreem
MATLAB Workshop
MATLAB Programming (Branching with if)
An if ... end statement consists of an if statement and a
boolean expression followed by one or more statements. It is
delimited by the end statement. The syntax of an if
statement in MATLAB is:
if <expression>
% statement(s) will execute if the boolean
% expression is true
<statement>
end
If the expression evaluates to true, then the block of code
inside the if statement will be executed. If the expression
evaluates to false, then the first set of code after the end
statement will be executed.
Dr. Mahmoud A. M. Albreem
MATLAB Workshop
MATLAB Programming (Branching with if)
Flow Diagram:
Dr. Mahmoud A. M. Albreem
MATLAB Workshop
Relational Operators
Relational operators for arrays perform element-by-element
comparisons between two arrays and return logical array of the
same size, with elements set to logical 1 (true) where the
relation is true and elements set to logical 0 (false) where it is
not.
< : Less than
<= : Less than or equal to
> : Greater than
>= : Greater than or equal to
== : Equal to
= : Not equal to
Dr. Mahmoud A. M. Albreem
MATLAB Workshop
MATLAB Programming (Branching with if)
Example: create a script file and type the following code:
a = 10;
% check the condition using if statement
if a < 20
% if condition is true then print the following
fprintf(a is less than 20\n);
end
fprintf(value of a is : %d\n,a)
Dr. Mahmoud A. M. Albreem
MATLAB Workshop
MATLAB Programming (Branching with if)
An if statement can be followed by an optional else
statement, which executes when the expression is false. The
syntax of an if ... else ... end statement in MATLAB is:
if <expression>
% statement(s) will execute if the boolean
% expression is true
<statement(s)>
else
<statement(s)>
% statement(s) will execute if the boolean
% expression is false
end
If the boolean expression evaluates to true, then the if block of
code will be executed, otherwise else block of code will be
executed.
Dr. Mahmoud A. M. Albreem
MATLAB Workshop
MATLAB Programming (Branching with if)
Flow Diagram:
Dr. Mahmoud A. M. Albreem
MATLAB Workshop
Relational Operators
Example: type the following code:
>> a = 100; b = 200;
>> if (a>=b)
max = a
else
max = b
end
When you execute the code, it produces following result:
max =
200
Dr. Mahmoud A. M. Albreem
MATLAB Workshop
MATLAB Programming (Branching with if)
An if statement can be followed by an (or more) optional
elseif ... and an else statement, which is very useful to test
various condition. When using if ... elseif ... else
statements, there are few points to keep in mind:
1
An if can have zero or one elses and it must come after any
elseifs.
An if can have zero to many elseifs and they must come
before the else.
Once an elseif succeeds, non of the remaining elseifs or elses
will be tested.
Dr. Mahmoud A. M. Albreem
MATLAB Workshop
MATLAB Programming (Branching with if)
if...elseif...else Synatx:
if <expression 1>
% Executes when the expression 1 is true
<statement (s)>
elseif <expression 2>
% Executes when the expression 2 is true
<statement (s)>
elseif <expression 3>
% Executes when the expression 3 is true
<statement (s)>
else
% Executes when the none of the above
% condition is true
<statement (s)>
end
Dr. Mahmoud A. M. Albreem
MATLAB Workshop
MATLAB Programming (Branching with if)
Example: create a script file and type the following code in it,
a = 100;
% check the boolean condition
if a == 10
% if condition is true then print the following
fprintf(Value of a is 10\n);
elseif(a == 20)
% if else if condition is true
fprintf(Value of a is 20\n);
elseif a == 30
% if else if condition is true
fprintf(Value of a is 30\n);
else
% if none of the conditions is true
fprintf(None of the values are matching \n);
fprintf(Exact value of a is: %d\n,a);
end
Dr. Mahmoud A. M. Albreem
MATLAB Workshop
MATLAB Programming (Branching with if)
Nested if statements: It is always legal in MATLAB to nest
if-else statements which means you can use one if or elseif
statement inside another if or elseif statement(s).
Synatx: the syntax for a nested if statement is as follows:
if <expression 1>
% Executes when the boolean expression 1 is true
if <expression 2>
% Executes when the boolean expression 2 is
% true
end
end
Dr. Mahmoud A. M. Albreem
MATLAB Workshop
MATLAB Programming (Branching with if)
Example: create a script file and type the following code in it.
a = 100;
b = 200;
% check the boolean condition
if (a == 100)
% if condition is true then check
% the following
if (b == 200)
% if condition is true then print
% the following
fprintf(Value of a is 100 and b is 200\n);
end
end
fprintf(Exact value of a is : %d\n,a);
fprintf(Exact value of b is : %d\n,b);
Dr. Mahmoud A. M. Albreem
MATLAB Workshop
Switch statement
A switch block conditionally executes one set of statements
from several choice. Each choice is covered by case
statement. An evaluated switch expression is a scalar or
string. The switch block tests each case until one of the cases
is true. A case is true when:
1
2
3
For numbers, eq(case expression,switch expression).
For strings, strcmp(case expression,switch expression).
For objects that support the eq function,
eq(case expression,switch expression).
For a cell array case expression, at least one of the elements of
the cell array matches switch expression, as defined above for
numbers, strings and objects.
When a case is true, MATLAB executes the corresponding
statements and then exits the switch block. The otherwise
block is optional and executes only when no case is true.
Dr. Mahmoud A. M. Albreem
MATLAB Workshop
Switch statement
Syntax: the syntax of switch statement in MATLAB is:
switch <switch_expression>
case <case_expression>
<statements>
case <case_expression>
<statements>
otherwise
<statements>
end
Dr. Mahmoud A. M. Albreem
MATLAB Workshop
Switch statement
Example: create a script file and type the following code in it,
grade = B;
switch(grade)
case A
fprintf(Excellent!\n);
case B
fprintf(Well done\n);
case C
fprintf(Well done\n);
case D
fprintf(You passed\n);
case F
fprintf(Better try again\n);
otherwise
fprintf(invalid grade\n);
end
Dr. Mahmoud A. M. Albreem
MATLAB Workshop
MATLAB Programming (Branching with while)
We introduced the command for, which begins a loop - a
sequence of commands to be executed multiple times. When
you use for, you effectively specify the number of times to
run the loop in advance. Some times you want to keep
running the commands in a loop until a certain condition is
met, without deciding in advance on the number of iterations.
In MATLAB, the command that allows you to do so is while.
The while loop repeatedly executes statements while
condition is true.
Dr. Mahmoud A. M. Albreem
MATLAB Workshop
MATLAB Programming (Branching with while)
The syntax of a while loop in MATLAB is:
while <statement>
<statement>
end
The while loop repeatedly executes program statement(s) as
long as the expression remains true.
Dr. Mahmoud A. M. Albreem
MATLAB Workshop
MATLAB Programming (Branching with while)
Example: create a script file and type the following code:
a = 10;
% while loop execution
while (a < 20)
fprintf(value of a: %d\n,a);
a = a + 1;
end
When you run the file, it displays the following result:
value of a: 10
value of a: 11
value of a: 12
value of a: 13
value of a: 14
value of a: 15
value of a: 16
value of a: 17
value of a: 18
value of a: 19
Dr. Mahmoud A. M. Albreem
MATLAB Workshop