SlideShare a Scribd company logo
Introduction to MATLAB
Introduction MATLAB
computations
Topics
• Introduction
• MATLAB Environment
• Getting Help
• Variables
• Vectors, Matrices, and Linear Algebra
• Mathematical Functions and
Applications
• Plotting
• Selection Programming
• M-Files
• User Defined Functions
• Specific Topics
Introduction
 What is MATLAB ?
• MATLAB is a computer program that combines computation and
visualization power that makes it particularly useful tool for
engineers.
• MATLAB is an executive program, and a script can be made with a
list of MATLAB commands like other programming language.
 MATLAB Stands for MATrix LABoratory.
• The system was designed to make matrix computation
particularly easy.
 The MATLAB environment allows the user to:
• manage variables
• import and export data
• perform calculations
• generate plots
• develop and manage files for use with MATLAB.
Display Windows
Display Windows (con’t…)
• Graphic (Figure) Window
– Displays plots and graphs
– Created in response to graphics commands.
• M-file editor/debugger window
– Create and edit scripts of commands called M-
files.
Getting Help
• type one of following commands in the command
window:
– help – lists all the help topic
– help topic – provides help for the specified topic
– help command – provides help for the specified command
• help help – provides information on use of the help command
– helpwin – opens a separate help window for navigation
– lookfor keyword – Search all M-files for keyword
Getting Help (con’t…)
• Google “MATLAB helpdesk”
• Go to the online HelpDesk provided
by www.mathworks.com
You can find EVERYTHING you
need to know about MATLAB
from the online HelpDesk.
Variables
• Variable names:
– Must start with a letter
– May contain only letters, digits, and the underscore “_”
– Matlab is case sensitive, i.e. one & OnE are different variables.
– Matlab only recognizes the first 31 characters in a variable
name.
• Assignment statement:
– Variable = number;
– Variable = expression;
• Example
: >> tutorial =
1234;
>> tutorial =
1234 tutorial =
1234
NOTE: when a semi-
colon ”;” is placed at the
end of each command,
the result is not
displayed.
Variables (con’t…)
• Special variables:
– ans : default variable name for the result
– pi:  = 3.1415926…………
– eps:  = 2.2204e-016, smallest amount by which 2 numbers can differ.
– Inf or inf : , infinity
– NaN or nan: not-a-number
• Commands involving variables:
– who: lists the names of defined variables
– whos: lists the names and sizes of defined variables
– clear: clears all varialbes, reset the default values of
special variables.
– clear name: clears the variable name
– clc: clears the command window
– clf: clears the current figure and the graph window.
Vectors, Matrices and Linear Algebra
• Vectors
• Array Operations
• Matrices
• Solutions to Systems of Linear
Equations.
MATLAB BASICS
Variables and Arrays
• Array: A collection of data values organized into
rows and columns, and known by a single name.
Row 1
Row 2
Row 3
arr(3,2)
Row 4
Col 1 Col 2 Col 3 Col 4
Col 5
MATLAB BASICS
Arrays
• The fundamental unit of data in MATLAB
• Scalars are also treated as arrays by MATLAB
(1 row and 1 column).
• Row and column indices of an array start from
1.
• Arrays can be classified as vectors and
matrices.
MATLAB BASICS
• Vector: Array with one dimension
• Matrix: Array with more than one dimension
• Size of an array is specified by the number of
rows and the number of columns, with the
number of rows mentioned first (For example: n x
m array).
Total number of elements in an array is the
product of the number of rows and the
number of columns.
MATLAB BASICS
1 2
3 4
5 6
a= 3x2 matrix  6
elements
b=[1 2 3
4]
1x4 array  4 elements, row
vector
c=
1
3
5
3x1 array  3 elements, column
vector
b(3)=3 c(2)=3
a(2,1)=3
Row # Column
#
Vectors
• A row vector in MATLAB can be created by an explicit list, starting with a left bracket,
entering the values separated by spaces (or commas) and closing the vector with a
right bracket.
• A column vector can be created the same way, and the rows are separated by
semicolons.
• Example:
>> x = [ 0 0.25*pi 0.5*pi
0.75*pi pi ] x =
0 0.7854 1.5708 2.3562
3.1416
>> y = [ 0; 0.25*pi; 0.5*pi; 0.75*pi;
pi ] y =
0
0.7854
1.5708
2.3562
3.1416
x is a row
vector.
y is a column
vector.
Vectors (con’t…)
• Vector Addressing – A vector element is addressed in MATLAB with an integer
index enclosed in parentheses.
• Example:
>> x(3)
ans =
1.5708
 1st to 3rd elements of vector
x
• The colon notation may be used to address a block of elements.
(start : increment : end)
start is the starting index, increment is the amount to add to each successive index, and end
is the ending index. A shortened format (start : end) may be used if increment is 1.
• Example:
>> x(1:3)
ans =
0 0.7854
1.5708
NOTE: MATLAB index starts at
 3rd element of vector
x
Vectors (con’t…)
Some useful
commands:
x = start:end create row vector x starting with start, counting by
one, ending at end
x = start:increment:end create row vector x starting with start,
counting by increment, ending at or before
end
length(x) returns the length of vector x
y = x’ transpose of vector x
dot (x, y) returns the scalar dot product of the vector x and y.
Array Operations
• Scalar-Array Mathematics
For addition, subtraction, multiplication, and division of an array
by a scalar simply apply the operations to all elements of the array.
• Example:
>> f = [ 1 2; 3 4]
f =
1 2
3 4
>> g = 2*f –
1 g =
1
3
5
7
Each element in the array f is
multiplied by 2, then
subtracted by 1.
Array Operations (con’t…)
• Element-by-Element Array-Array Mathematics.
Operation Algebraic Form MATLAB
Addition a + b a + b
Subtraction a – b a – b
Multiplication a x b a .* b
Division a  b a ./ b
Exponentiation ab
a .^ b
• Example:
>> x = [ 1 2 3 ];
>> y = [ 4 5 6 ];
>> z = x .* y
z =
4
10
Each element in x is multiplied
by the corresponding element
in y.
Matrices
A is an m x n
matrix.
 A Matrix array is two-dimensional, having both multiple rows and multiple
columns, similar to vector arrays:
 it begins with [, and end with ]
 spaces or commas are used to separate elements in a row
 semicolon or enter is used to separate rows.
•Example:
>> f = [ 1 2 3; 4 5 6]
f =
1 2 3
4 5 6
>> h = [ 2 4 6
1 3 5]
h =
2 4
6
1 3
5
the main
diagonal
Matrices (con’t…)
• Matrix Addressing:
-- matrixname(row, column)
-- colon may be used in place of a row or column reference to select
the entire row or column.
recall
: f =
1
4
h =
2
1
2 3
5 6
4 6
3 5
 Example:
>> f(2,3)
ans =
6
>> h(:,1)
ans =
2
1
Matrices (con’t…)
Some useful
commands:
zeros(n)
zeros(m,n
)
ones(n)
ones(m,n
)
size (A)
length(A
)
returns a n x n matrix of
zeros returns a m x n matrix
of zeros
returns a n x n matrix of
ones returns a m x n matrix
of ones
for a m x n matrix A, returns the row vector
[m,n] containing the number of rows and
columns in matrix.
returns the larger of the number of rows
or columns in A.
Matrices (con’t…)
Transpose B = A’
Identity Matrix eye(n)  returns an n x n identity matrix
eye(m,n)  returns an m x n matrix with ones on the
main diagonal and zeros elsewhere.
Addition and subtraction C = A + B
C = A –
B
Scalar Multiplication B = A, where  is a scalar.
Matrix Multiplication C = A*B
Matrix Inverse B = inv(A), A must be a square matrix in this
case. rank (A)  returns the rank of the matrix
A.
Matrix Powers B = A.^2  squares each element in the matrix
C = A * A  computes A*A, and A must be a square matrix.
Determinant det (A), and A must be a square matrix.
more
commands
A, B, C are matrices, and m, n,  are
scalars.
Solutions to Systems of Linear Equations
• Example: a system of 3 linear equations with 3 unknowns (x1, x2,
x3): 3x1 + 2x2 – x3 = 10
-x1 + 3x2 + 2x3 = 5
x1 – x2 – x3 = -1
Then, the system can be described as:
Ax = b
2

 3 2
1 
A  1 3


 1 1
1



x3


x  x2

 x1
 


1

b   5

10

Let :
Solutions to Systems of Linear Equations (con’t…)
• Solution by Matrix Inverse:
Ax = b
A-1Ax = A-1b
x = A-1b
• MATLAB:
>> A = [ 3 2 -1; -1 3 2; 1 -1 -1];
>> b = [ 10; 5; -1];
>> x =
inv(A)*b x =
-2.0000
5.0000
-6.0000
Answer:
x1 = -2, x2 = 5, x3 = -6
• Solution by Matrix
Division:
The solution to the equation
Ax = b
can be computed using left
division.
 MATLAB:
>> A = [ 3 2 -1; -1 3 2; 1 -1 -1];
>> b = [ 10; 5; -1];
>> x = A
b x =
-2.0000
5.0000
-6.0000
Answer:
x1 = -2, x2 = 5, x3 = -6
NOTE:
left division: Ab  b  right division: x/y  x 
• The input function displays a prompt string in
the Command Window and then waits for the
user to respond.
my_val = input( ‘Enter an input value:
’ ); in1 = input( ‘Enter data: ’ );
in2 = input( ‘Enter data: ’ ,`s`);
Initializing with Keyboard Input
How to display data
The disp( ) function
>>
disp( 'Hello' )
Hello
>> disp(5)
5
>> disp( [ 'Bilkent '
'University' ] ) Bilkent
University
>> name = 'Alper';
>> disp( [ 'Hello ' name ]
) Hello Alper
Plotting
• For more information on 2-D plotting, type help
graph2d
• Plotting a point:
>> plot ( variablename, ‘symbol’)
the function plot () creates a
graphics window, called a Figure
window, and named by default
“Figure No. 1”
 Example : Complex
number
>> z = 1 + 0.5j;
>> plot (z, ‘.’)
Plotting (con’t…)
>> t = 0:pi/100:2*pi;
>> y = sin(t);
>> plot(t,y)
Line Plot
30
>> xlabel(‘t’);
>> ylabel(‘sin(t)’);
>> title(‘The plot of t vs sin(t)’);
Line Plot
31
>> y2 = sin(t-0.25);
>> y3 = sin(t+0.25);
>> plot(t,y,t,y2,t,y3)
curves
% make 2D line plot of 3
>> legend('sin(t)','sin(t-0.25)','sin(t+0.25',1)
Line Plot
32
Generally, MATLAB’s default graphical settings
are adequate which make plotting fairly
effortless. For more customized effects, use
the get and set commands to change the
behavior of specific rendering properties.
>> hp1 = plot(1:5)
of this line plot
>> get(hp1)
properties and
their values
>> set(hp1, ‘lineWidth’)
values for lineWidth
% returns the handle
% to view line plot’s
% show possible
% change line width
Customizing Graphical
Eff3e3cts
>> x = magic(3);
>> bar(x)
>> grid
% generate data for bar graph
% create bar chart
% add grid
• To add a legend, either use the legend
command or via insert in the Menu Bar on the
figure. Many other actions are available in
Tools.
• It is convenient to use the Menu Bar to change
a figure’s properties interactively. However,
the set command is handy for non-interactive
Save A Plot With print
34
>> x = magic(3);
>> bar(x)
>> grid
% generate data for bar graph
% create bar chart
% add grid for clarity
2D Bar Graph
35
• >> print –djpeg
'mybar'
• >> print('-djpeg', 'mybar')
% print as a command
% print as a function
Function ?
• Many MATLAB utilities are available in
both command and function forms.
• For this example, both forms produce the
same effect:
• For this example, the command form yields
an unintentional outcome:
• >> myfile = 'mybar'; % myfile is
Use M ATnt
Ld
Aion
Bo
M
CL
ommand
or36
Surface Plot
>> Z = peaks; % generate data for
plot; returns function values
>> surf(Z) % surface plot of Z
Try these commands also:
>> shading flat
>> shading interp
>> shading faceted
>> grid off
>> axis off
peaks
37
>>
>>
contourf(Z, 20); % with color
fill
colormap('hot') % map
option colorbar % make color
Contour Plots
>> Z = peaks;
>> contour(Z, 20) % contour plot of Z with
20 contours
>>
38
1. Introduction to Computing -  MATLAB.pptx
Integration Example
• Integration of cosine from 0 to π/2.
• Use mid-point rule for simplicity.
39
m m
b
a
2
1
cos(a  (i  )h)h
cos( x)dx

 
i1
cos( x)dx 

i1
aih
a(i1)
h
mid-point of increment
cos(x)
h
a = 0; b = pi/2; % range
m = 8; % # of
increments h = (b-a)/m;
% increment
m
a
b
h
= 100;
= 0;
= pi/2;
= (b – a)/m;
% lower limit of integration
% upper limit of integration
% increment length
% initialize integral
integral = 0; for
i=1:m
x = a+(i-
0.5)*h;
% mid-point of increment i
integral = integral + cos(x)*h; end
toc
Integ ratioIntro
ndu
loop
% integration with for-loop tic
Eto
M
xAT
aL
A
mB
ple — using40for-
X(1) = a + h/2 X(m) = b - h/2
a
h
b
% integration with
tic
vector form
m = 100;
a = 0; % lower limit of integration
b = pi/2; % upper limit of integration
h = (b – a)/m; % increment length
x = a+h/2:h:b-h/2; % mid-
point integral = sum(cos(x))*h;
toc
of m increments
Integ ratioIntro
ndu
vector form
Eto
M
xAT
aL
A
mB
ple — using41
X(1) = a + h/2 X(m) = b - h/2
a
h
b
1.Use the editor to write a program to
generate the figure that describe the
integration scheme we discussed. (Hint: use
plot to plot the cosine curve.
Use bar to draw the rectangles that
depict the integrated value for each
interval. Save as plotIntegral.m
2.Compute the integrals using 10
different increment sizes (h), for m=10,
20, 30, . . . ,
100. Plot these 10 values to see how the
solution converges to the analytical value
Hands On Exercise
42
1. Introduction to Computing -  MATLAB.pptx
a = 0;
b=pi/2; m =
8;
h = (b-a)/m;
x= a+h/2:h:b-
h/2;
bh =
bar(x,cos(x),1,'c');
hold
x =
a:h/10:b; f
= cos(x);
ph =
plot(x,f,'r');
% lower and upper limits of integration
% number of increments
% increment size
% m mid-points
% make bar chart with the bars in cyan
% all plots will be superposed on same
figure
% use more points at which to evaluate
cosine
% compute cosine at x
% plots x vs f, in red
% Compute integral with different values of m to study
convergence for i=1:10
n(i) = 10+(i-1)*10;
h = (b-a)/n(i);
x = a+h/2:h:b-h/2;
integral(i) =
sum(cos(x)*h);
end
figure % create a new
figure plot(n, integral)
Hands On Exercise Solutio4n3
 SCV home page (www.bu.edu/tech/research)
 Resource Applications
www.bu.edu/tech/accounts/special/research/accounts
 Help
– System
• help@katana.bu.edu, bu.service-now.com
– Web-based tutorials (
www.bu.edu/tech/research/training/tutorials)
(MPI, OpenMP, MATLAB, IDL, Graphics tools)
– HPC consultations by appointment
• Kadin Tseng (kadin@bu.edu)
• Yann Tambouret (yannpaul@bu.edu)
Useful SCV Info
44
Built-in MATLAB
Functions
result = function_name( input );
– abs, sign
– log, log10, log2
– exp
– sqrt
– sin, cos, tan
– asin, acos, atan
– max, min
– round, floor, ceil, fix
– mod, rem
• help elfun  help for elementary math
functions
Selection Programming
• Flow
Control
• Loops
Flow Control
• Simple if statement:
if logical expression
commands
end
• Example: (Nested)
if d <50
count = count +
1; disp(d);
if b>d
b=0;
end
end
• Example: (else and elseif
clauses) if temperature > 100
disp (‘Too hot –
equipment
malfunctioning.’)
elseif temperature > 90
disp (‘Normal operating range.’);
elseif (‘Below desired operating
range.’) else
disp (‘Too cold – turn off
equipment.’)
end
Flow Control (con’t…)
• The switch
statement:
switch expression
case test expression 1
commands
case test expression 2
commands
otherwise
commands
end
• Example:
switch interval <
1 case 1
xinc = interval
/10; case 0
xinc = 0.1;
end
Loops
• for loop
for variable = expression
commands
end
• while loop
while expression
commands
end
•Example (for loop):
for t = 1:5000
y(t) = sin (2*pi*t/10);
end
•Example (while loop):
EPS = 1;
while ( 1+EPS) >1
EPS = EPS/2;
end
EPS = 2*EPS
 the break statement
break – is used to terminate the execution of the
loop.
M-Files
So far
, we have executed the commands in the command
window. But a more practical way is to create a M-file.
• The M-file is a text file that consists a group
of MATLAB commands.
• MATLAB can open and execute the
commands exactly as if they were entered
at the MATLAB command window.
• To run the M-files, just type the file name in the
command window. (make sure the current
working directory is set correctly)
All MATLAB commands are M-files.
User-Defined Function
• Add the following command in the beginning of your m-
file:
function [output variables] = function_name (input
variables);
NOTE: the function_name
should be the same as your
file name to avoid confusion.
 calling your function:
-- a user-defined function is called by the name of the m-file,
not
the name given in the function definition.
-- type in the m-file name like other pre-defined commands.
 Comments:
-- The first few lines should be comments, as they will be
displayed if help is requested for the function name.
the first comment line is reference by the lookfor
command.
Specific Topics
• This tutorial gives you a general background on
the usage of MATLAB.
• There are thousands of MATLAB commands
for many different applications, therefore it
is impossible to cover all topics here.

More Related Content

PPT
Introduction to Matlab - Basic Functions
PPTX
Introduction to MATLAB Programming for Engineers
PPT
Matlab introduction
PPT
matlab_tutorial for student in the first
PPT
matlab_tutorial.ppt
PPT
matlab_tutorial.ppt
PPTX
An Introduction to MATLAB for beginners
PPT
MATLAB-Introd.ppt
Introduction to Matlab - Basic Functions
Introduction to MATLAB Programming for Engineers
Matlab introduction
matlab_tutorial for student in the first
matlab_tutorial.ppt
matlab_tutorial.ppt
An Introduction to MATLAB for beginners
MATLAB-Introd.ppt

Similar to 1. Introduction to Computing - MATLAB.pptx (20)

PDF
Basics of matlab
PPTX
Matlab ppt
PPTX
MATLAB - Arrays and Matrices
PPTX
Lines and planes in space
PDF
Matlab booklet
PPTX
Variables in matlab
PPTX
Matlab-1.pptx
PPT
Matlab introduction
PPTX
INTRODUCTION TO MATLAB presentation.pptx
PPTX
Basic MATLAB-Presentation.pptx
PDF
PDF
Matlab-free course by Mohd Esa
PPTX
Introduction to Matlab and application.pptx
PPT
Matlab1
PPT
Introduction to matlab
PDF
A complete introduction on matlab and matlab's projects
PPT
Introduction to MATLAB
PPTX
Introduction to matlab lecture 2 of 4
PPTX
matlab presentation fro engninering students
PPS
Basics of matlab
Matlab ppt
MATLAB - Arrays and Matrices
Lines and planes in space
Matlab booklet
Variables in matlab
Matlab-1.pptx
Matlab introduction
INTRODUCTION TO MATLAB presentation.pptx
Basic MATLAB-Presentation.pptx
Matlab-free course by Mohd Esa
Introduction to Matlab and application.pptx
Matlab1
Introduction to matlab
A complete introduction on matlab and matlab's projects
Introduction to MATLAB
Introduction to matlab lecture 2 of 4
matlab presentation fro engninering students
Ad

Recently uploaded (20)

PPTX
01_intro xxxxxxxxxxfffffffffffaaaaaaaaaaafg
PPTX
Qualitative Qantitative and Mixed Methods.pptx
PPTX
Computer network topology notes for revision
PPTX
STUDY DESIGN details- Lt Col Maksud (21).pptx
PDF
Foundation of Data Science unit number two notes
PPTX
Business Ppt On Nestle.pptx huunnnhhgfvu
PPT
ISS -ESG Data flows What is ESG and HowHow
PPTX
1_Introduction to advance data techniques.pptx
PPTX
AI Strategy room jwfjksfksfjsjsjsjsjfsjfsj
PPTX
Data_Analytics_and_PowerBI_Presentation.pptx
PDF
Clinical guidelines as a resource for EBP(1).pdf
PPTX
Acceptance and paychological effects of mandatory extra coach I classes.pptx
PPT
Miokarditis (Inflamasi pada Otot Jantung)
PPTX
mbdjdhjjodule 5-1 rhfhhfjtjjhafbrhfnfbbfnb
PDF
annual-report-2024-2025 original latest.
PPTX
MODULE 8 - DISASTER risk PREPAREDNESS.pptx
PPTX
Database Infoormation System (DBIS).pptx
PPTX
Microsoft-Fabric-Unifying-Analytics-for-the-Modern-Enterprise Solution.pptx
PDF
Business Analytics and business intelligence.pdf
PDF
Fluorescence-microscope_Botany_detailed content
01_intro xxxxxxxxxxfffffffffffaaaaaaaaaaafg
Qualitative Qantitative and Mixed Methods.pptx
Computer network topology notes for revision
STUDY DESIGN details- Lt Col Maksud (21).pptx
Foundation of Data Science unit number two notes
Business Ppt On Nestle.pptx huunnnhhgfvu
ISS -ESG Data flows What is ESG and HowHow
1_Introduction to advance data techniques.pptx
AI Strategy room jwfjksfksfjsjsjsjsjfsjfsj
Data_Analytics_and_PowerBI_Presentation.pptx
Clinical guidelines as a resource for EBP(1).pdf
Acceptance and paychological effects of mandatory extra coach I classes.pptx
Miokarditis (Inflamasi pada Otot Jantung)
mbdjdhjjodule 5-1 rhfhhfjtjjhafbrhfnfbbfnb
annual-report-2024-2025 original latest.
MODULE 8 - DISASTER risk PREPAREDNESS.pptx
Database Infoormation System (DBIS).pptx
Microsoft-Fabric-Unifying-Analytics-for-the-Modern-Enterprise Solution.pptx
Business Analytics and business intelligence.pdf
Fluorescence-microscope_Botany_detailed content
Ad

1. Introduction to Computing - MATLAB.pptx

  • 2. Topics • Introduction • MATLAB Environment • Getting Help • Variables • Vectors, Matrices, and Linear Algebra • Mathematical Functions and Applications • Plotting • Selection Programming • M-Files • User Defined Functions • Specific Topics
  • 3. Introduction  What is MATLAB ? • MATLAB is a computer program that combines computation and visualization power that makes it particularly useful tool for engineers. • MATLAB is an executive program, and a script can be made with a list of MATLAB commands like other programming language.  MATLAB Stands for MATrix LABoratory. • The system was designed to make matrix computation particularly easy.  The MATLAB environment allows the user to: • manage variables • import and export data • perform calculations • generate plots • develop and manage files for use with MATLAB.
  • 5. Display Windows (con’t…) • Graphic (Figure) Window – Displays plots and graphs – Created in response to graphics commands. • M-file editor/debugger window – Create and edit scripts of commands called M- files.
  • 6. Getting Help • type one of following commands in the command window: – help – lists all the help topic – help topic – provides help for the specified topic – help command – provides help for the specified command • help help – provides information on use of the help command – helpwin – opens a separate help window for navigation – lookfor keyword – Search all M-files for keyword
  • 7. Getting Help (con’t…) • Google “MATLAB helpdesk” • Go to the online HelpDesk provided by www.mathworks.com You can find EVERYTHING you need to know about MATLAB from the online HelpDesk.
  • 8. Variables • Variable names: – Must start with a letter – May contain only letters, digits, and the underscore “_” – Matlab is case sensitive, i.e. one & OnE are different variables. – Matlab only recognizes the first 31 characters in a variable name. • Assignment statement: – Variable = number; – Variable = expression; • Example : >> tutorial = 1234; >> tutorial = 1234 tutorial = 1234 NOTE: when a semi- colon ”;” is placed at the end of each command, the result is not displayed.
  • 9. Variables (con’t…) • Special variables: – ans : default variable name for the result – pi:  = 3.1415926………… – eps:  = 2.2204e-016, smallest amount by which 2 numbers can differ. – Inf or inf : , infinity – NaN or nan: not-a-number • Commands involving variables: – who: lists the names of defined variables – whos: lists the names and sizes of defined variables – clear: clears all varialbes, reset the default values of special variables. – clear name: clears the variable name – clc: clears the command window – clf: clears the current figure and the graph window.
  • 10. Vectors, Matrices and Linear Algebra • Vectors • Array Operations • Matrices • Solutions to Systems of Linear Equations.
  • 11. MATLAB BASICS Variables and Arrays • Array: A collection of data values organized into rows and columns, and known by a single name. Row 1 Row 2 Row 3 arr(3,2) Row 4 Col 1 Col 2 Col 3 Col 4 Col 5
  • 12. MATLAB BASICS Arrays • The fundamental unit of data in MATLAB • Scalars are also treated as arrays by MATLAB (1 row and 1 column). • Row and column indices of an array start from 1. • Arrays can be classified as vectors and matrices.
  • 13. MATLAB BASICS • Vector: Array with one dimension • Matrix: Array with more than one dimension • Size of an array is specified by the number of rows and the number of columns, with the number of rows mentioned first (For example: n x m array). Total number of elements in an array is the product of the number of rows and the number of columns.
  • 14. MATLAB BASICS 1 2 3 4 5 6 a= 3x2 matrix  6 elements b=[1 2 3 4] 1x4 array  4 elements, row vector c= 1 3 5 3x1 array  3 elements, column vector b(3)=3 c(2)=3 a(2,1)=3 Row # Column #
  • 15. Vectors • A row vector in MATLAB can be created by an explicit list, starting with a left bracket, entering the values separated by spaces (or commas) and closing the vector with a right bracket. • A column vector can be created the same way, and the rows are separated by semicolons. • Example: >> x = [ 0 0.25*pi 0.5*pi 0.75*pi pi ] x = 0 0.7854 1.5708 2.3562 3.1416 >> y = [ 0; 0.25*pi; 0.5*pi; 0.75*pi; pi ] y = 0 0.7854 1.5708 2.3562 3.1416 x is a row vector. y is a column vector.
  • 16. Vectors (con’t…) • Vector Addressing – A vector element is addressed in MATLAB with an integer index enclosed in parentheses. • Example: >> x(3) ans = 1.5708  1st to 3rd elements of vector x • The colon notation may be used to address a block of elements. (start : increment : end) start is the starting index, increment is the amount to add to each successive index, and end is the ending index. A shortened format (start : end) may be used if increment is 1. • Example: >> x(1:3) ans = 0 0.7854 1.5708 NOTE: MATLAB index starts at  3rd element of vector x
  • 17. Vectors (con’t…) Some useful commands: x = start:end create row vector x starting with start, counting by one, ending at end x = start:increment:end create row vector x starting with start, counting by increment, ending at or before end length(x) returns the length of vector x y = x’ transpose of vector x dot (x, y) returns the scalar dot product of the vector x and y.
  • 18. Array Operations • Scalar-Array Mathematics For addition, subtraction, multiplication, and division of an array by a scalar simply apply the operations to all elements of the array. • Example: >> f = [ 1 2; 3 4] f = 1 2 3 4 >> g = 2*f – 1 g = 1 3 5 7 Each element in the array f is multiplied by 2, then subtracted by 1.
  • 19. Array Operations (con’t…) • Element-by-Element Array-Array Mathematics. Operation Algebraic Form MATLAB Addition a + b a + b Subtraction a – b a – b Multiplication a x b a .* b Division a  b a ./ b Exponentiation ab a .^ b • Example: >> x = [ 1 2 3 ]; >> y = [ 4 5 6 ]; >> z = x .* y z = 4 10 Each element in x is multiplied by the corresponding element in y.
  • 20. Matrices A is an m x n matrix.  A Matrix array is two-dimensional, having both multiple rows and multiple columns, similar to vector arrays:  it begins with [, and end with ]  spaces or commas are used to separate elements in a row  semicolon or enter is used to separate rows. •Example: >> f = [ 1 2 3; 4 5 6] f = 1 2 3 4 5 6 >> h = [ 2 4 6 1 3 5] h = 2 4 6 1 3 5 the main diagonal
  • 21. Matrices (con’t…) • Matrix Addressing: -- matrixname(row, column) -- colon may be used in place of a row or column reference to select the entire row or column. recall : f = 1 4 h = 2 1 2 3 5 6 4 6 3 5  Example: >> f(2,3) ans = 6 >> h(:,1) ans = 2 1
  • 22. Matrices (con’t…) Some useful commands: zeros(n) zeros(m,n ) ones(n) ones(m,n ) size (A) length(A ) returns a n x n matrix of zeros returns a m x n matrix of zeros returns a n x n matrix of ones returns a m x n matrix of ones for a m x n matrix A, returns the row vector [m,n] containing the number of rows and columns in matrix. returns the larger of the number of rows or columns in A.
  • 23. Matrices (con’t…) Transpose B = A’ Identity Matrix eye(n)  returns an n x n identity matrix eye(m,n)  returns an m x n matrix with ones on the main diagonal and zeros elsewhere. Addition and subtraction C = A + B C = A – B Scalar Multiplication B = A, where  is a scalar. Matrix Multiplication C = A*B Matrix Inverse B = inv(A), A must be a square matrix in this case. rank (A)  returns the rank of the matrix A. Matrix Powers B = A.^2  squares each element in the matrix C = A * A  computes A*A, and A must be a square matrix. Determinant det (A), and A must be a square matrix. more commands A, B, C are matrices, and m, n,  are scalars.
  • 24. Solutions to Systems of Linear Equations • Example: a system of 3 linear equations with 3 unknowns (x1, x2, x3): 3x1 + 2x2 – x3 = 10 -x1 + 3x2 + 2x3 = 5 x1 – x2 – x3 = -1 Then, the system can be described as: Ax = b 2   3 2 1  A  1 3    1 1 1    x3   x  x2   x1     1  b   5  10  Let :
  • 25. Solutions to Systems of Linear Equations (con’t…) • Solution by Matrix Inverse: Ax = b A-1Ax = A-1b x = A-1b • MATLAB: >> A = [ 3 2 -1; -1 3 2; 1 -1 -1]; >> b = [ 10; 5; -1]; >> x = inv(A)*b x = -2.0000 5.0000 -6.0000 Answer: x1 = -2, x2 = 5, x3 = -6 • Solution by Matrix Division: The solution to the equation Ax = b can be computed using left division.  MATLAB: >> A = [ 3 2 -1; -1 3 2; 1 -1 -1]; >> b = [ 10; 5; -1]; >> x = A b x = -2.0000 5.0000 -6.0000 Answer: x1 = -2, x2 = 5, x3 = -6 NOTE: left division: Ab  b  right division: x/y  x 
  • 26. • The input function displays a prompt string in the Command Window and then waits for the user to respond. my_val = input( ‘Enter an input value: ’ ); in1 = input( ‘Enter data: ’ ); in2 = input( ‘Enter data: ’ ,`s`); Initializing with Keyboard Input
  • 27. How to display data The disp( ) function >> disp( 'Hello' ) Hello >> disp(5) 5 >> disp( [ 'Bilkent ' 'University' ] ) Bilkent University >> name = 'Alper'; >> disp( [ 'Hello ' name ] ) Hello Alper
  • 28. Plotting • For more information on 2-D plotting, type help graph2d • Plotting a point: >> plot ( variablename, ‘symbol’) the function plot () creates a graphics window, called a Figure window, and named by default “Figure No. 1”  Example : Complex number >> z = 1 + 0.5j; >> plot (z, ‘.’)
  • 30. >> t = 0:pi/100:2*pi; >> y = sin(t); >> plot(t,y) Line Plot 30
  • 31. >> xlabel(‘t’); >> ylabel(‘sin(t)’); >> title(‘The plot of t vs sin(t)’); Line Plot 31
  • 32. >> y2 = sin(t-0.25); >> y3 = sin(t+0.25); >> plot(t,y,t,y2,t,y3) curves % make 2D line plot of 3 >> legend('sin(t)','sin(t-0.25)','sin(t+0.25',1) Line Plot 32
  • 33. Generally, MATLAB’s default graphical settings are adequate which make plotting fairly effortless. For more customized effects, use the get and set commands to change the behavior of specific rendering properties. >> hp1 = plot(1:5) of this line plot >> get(hp1) properties and their values >> set(hp1, ‘lineWidth’) values for lineWidth % returns the handle % to view line plot’s % show possible % change line width Customizing Graphical Eff3e3cts
  • 34. >> x = magic(3); >> bar(x) >> grid % generate data for bar graph % create bar chart % add grid • To add a legend, either use the legend command or via insert in the Menu Bar on the figure. Many other actions are available in Tools. • It is convenient to use the Menu Bar to change a figure’s properties interactively. However, the set command is handy for non-interactive Save A Plot With print 34
  • 35. >> x = magic(3); >> bar(x) >> grid % generate data for bar graph % create bar chart % add grid for clarity 2D Bar Graph 35
  • 36. • >> print –djpeg 'mybar' • >> print('-djpeg', 'mybar') % print as a command % print as a function Function ? • Many MATLAB utilities are available in both command and function forms. • For this example, both forms produce the same effect: • For this example, the command form yields an unintentional outcome: • >> myfile = 'mybar'; % myfile is Use M ATnt Ld Aion Bo M CL ommand or36
  • 37. Surface Plot >> Z = peaks; % generate data for plot; returns function values >> surf(Z) % surface plot of Z Try these commands also: >> shading flat >> shading interp >> shading faceted >> grid off >> axis off peaks 37
  • 38. >> >> contourf(Z, 20); % with color fill colormap('hot') % map option colorbar % make color Contour Plots >> Z = peaks; >> contour(Z, 20) % contour plot of Z with 20 contours >> 38
  • 40. Integration Example • Integration of cosine from 0 to π/2. • Use mid-point rule for simplicity. 39 m m b a 2 1 cos(a  (i  )h)h cos( x)dx    i1 cos( x)dx   i1 aih a(i1) h mid-point of increment cos(x) h a = 0; b = pi/2; % range m = 8; % # of increments h = (b-a)/m; % increment
  • 41. m a b h = 100; = 0; = pi/2; = (b – a)/m; % lower limit of integration % upper limit of integration % increment length % initialize integral integral = 0; for i=1:m x = a+(i- 0.5)*h; % mid-point of increment i integral = integral + cos(x)*h; end toc Integ ratioIntro ndu loop % integration with for-loop tic Eto M xAT aL A mB ple — using40for- X(1) = a + h/2 X(m) = b - h/2 a h b
  • 42. % integration with tic vector form m = 100; a = 0; % lower limit of integration b = pi/2; % upper limit of integration h = (b – a)/m; % increment length x = a+h/2:h:b-h/2; % mid- point integral = sum(cos(x))*h; toc of m increments Integ ratioIntro ndu vector form Eto M xAT aL A mB ple — using41 X(1) = a + h/2 X(m) = b - h/2 a h b
  • 43. 1.Use the editor to write a program to generate the figure that describe the integration scheme we discussed. (Hint: use plot to plot the cosine curve. Use bar to draw the rectangles that depict the integrated value for each interval. Save as plotIntegral.m 2.Compute the integrals using 10 different increment sizes (h), for m=10, 20, 30, . . . , 100. Plot these 10 values to see how the solution converges to the analytical value Hands On Exercise 42
  • 45. a = 0; b=pi/2; m = 8; h = (b-a)/m; x= a+h/2:h:b- h/2; bh = bar(x,cos(x),1,'c'); hold x = a:h/10:b; f = cos(x); ph = plot(x,f,'r'); % lower and upper limits of integration % number of increments % increment size % m mid-points % make bar chart with the bars in cyan % all plots will be superposed on same figure % use more points at which to evaluate cosine % compute cosine at x % plots x vs f, in red % Compute integral with different values of m to study convergence for i=1:10 n(i) = 10+(i-1)*10; h = (b-a)/n(i); x = a+h/2:h:b-h/2; integral(i) = sum(cos(x)*h); end figure % create a new figure plot(n, integral) Hands On Exercise Solutio4n3
  • 46.  SCV home page (www.bu.edu/tech/research)  Resource Applications www.bu.edu/tech/accounts/special/research/accounts  Help – System • help@katana.bu.edu, bu.service-now.com – Web-based tutorials ( www.bu.edu/tech/research/training/tutorials) (MPI, OpenMP, MATLAB, IDL, Graphics tools) – HPC consultations by appointment • Kadin Tseng (kadin@bu.edu) • Yann Tambouret (yannpaul@bu.edu) Useful SCV Info 44
  • 47. Built-in MATLAB Functions result = function_name( input ); – abs, sign – log, log10, log2 – exp – sqrt – sin, cos, tan – asin, acos, atan – max, min – round, floor, ceil, fix – mod, rem • help elfun  help for elementary math functions
  • 49. Flow Control • Simple if statement: if logical expression commands end • Example: (Nested) if d <50 count = count + 1; disp(d); if b>d b=0; end end • Example: (else and elseif clauses) if temperature > 100 disp (‘Too hot – equipment malfunctioning.’) elseif temperature > 90 disp (‘Normal operating range.’); elseif (‘Below desired operating range.’) else disp (‘Too cold – turn off equipment.’) end
  • 50. Flow Control (con’t…) • The switch statement: switch expression case test expression 1 commands case test expression 2 commands otherwise commands end • Example: switch interval < 1 case 1 xinc = interval /10; case 0 xinc = 0.1; end
  • 51. Loops • for loop for variable = expression commands end • while loop while expression commands end •Example (for loop): for t = 1:5000 y(t) = sin (2*pi*t/10); end •Example (while loop): EPS = 1; while ( 1+EPS) >1 EPS = EPS/2; end EPS = 2*EPS  the break statement break – is used to terminate the execution of the loop.
  • 52. M-Files So far , we have executed the commands in the command window. But a more practical way is to create a M-file. • The M-file is a text file that consists a group of MATLAB commands. • MATLAB can open and execute the commands exactly as if they were entered at the MATLAB command window. • To run the M-files, just type the file name in the command window. (make sure the current working directory is set correctly) All MATLAB commands are M-files.
  • 53. User-Defined Function • Add the following command in the beginning of your m- file: function [output variables] = function_name (input variables); NOTE: the function_name should be the same as your file name to avoid confusion.  calling your function: -- a user-defined function is called by the name of the m-file, not the name given in the function definition. -- type in the m-file name like other pre-defined commands.  Comments: -- The first few lines should be comments, as they will be displayed if help is requested for the function name. the first comment line is reference by the lookfor command.
  • 54. Specific Topics • This tutorial gives you a general background on the usage of MATLAB. • There are thousands of MATLAB commands for many different applications, therefore it is impossible to cover all topics here.