0% found this document useful (0 votes)
42 views

Introduction To Matlab

Here is an example function that takes an input array and returns the sum and product of its elements as outputs: function [sum, prod] = array_ops(arr) sum = 0; prod = 1; for i=1:length(arr) sum = sum + arr(i); prod = prod * arr(i); end end To use it: arr = [1, 2, 3]; [s, p] = array_ops(arr) This defines a function called array_ops with the m-file name array_ops.m. It takes the input arr, initializes sum and prod variables, loops through arr calculating
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
42 views

Introduction To Matlab

Here is an example function that takes an input array and returns the sum and product of its elements as outputs: function [sum, prod] = array_ops(arr) sum = 0; prod = 1; for i=1:length(arr) sum = sum + arr(i); prod = prod * arr(i); end end To use it: arr = [1, 2, 3]; [s, p] = array_ops(arr) This defines a function called array_ops with the m-file name array_ops.m. It takes the input arr, initializes sum and prod variables, loops through arr calculating
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 41

Introduction to Matlab

CSE-318
What is Matlab?
 Matlab is basically a high level language
which has many specialized toolboxes for
making things easier for us
 Provide interactive environment for numerical
computation, visualization and programming.
 Developed by MathWorks
 MATLAB- Matrix Laboratory
 Typical Uses:
• Math and Computation
• Signal processing and Communications
• Data Acquisition
• Modeling, Simulation and Prototyping
• Data analysis, exploration and visualization
• Scientific and Engineering graphics
• Application development, including graphical
user interface building
What are we interested in?
 MatLab is too broad for our purposes in
this course.
 The features we are going to require is
MatLab

Command
m-files mat-files
Line

functions Series of build in


commands and
math functions
MatLab
• The MATLAB environment is command oriented
somewhat like UNIX.
• A prompt appears on the screen and a MATLAB
statement can be entered.
• When the <ENTER> key is pressed, the
statement is executed, and another prompt
appears.
• If a statement is terminated with a semicolon ( ;
), no results will be displayed.
• Otherwise results will appear before the next
prompt.
MatLab Screen
 Command Window
 type commands

 Current Directory
 View folders and m-files

 Workspace
 View program variables
 Double click on a variable
to see it in the Array Editor

 Command History
 view past commands
 save a whole session
using diary
Variables

 Must start with a letter


 May contain only letters, digits, and the underscore “_”
 MatLab is case sensitive.

MATLAB variables are created with an assignment statement. The


syntax of variable assignment is-
variable name = a value (or an expression)

- where expression is a combination of numerical values, mathematical


operators, variables, and function calls
Variables
 No need for types. i.e.,

int a;
double b;
float c;

 All variables are created with double precision unless


specified and they are matrices.
Example:
>>x=5;
>>x1=2;

 After these statements, the variables are 1x1 matrices with


double precision
>> x=[1 2 3] When defining variables, a space or
x = comma separates elements on a
1 2 3 row.

>> x=[1,2,3]
x =
1 2 3

>> x=[1 A newline or semicolon forces a


2 new row; these 2 statements are
3 equivalent.
4]; NB. you can break definitions across
>> x=[1;2;3;4] multiple lines.

x =
1
2
3
4
Array, Matrix
 a vector x = [1 2 5 1]

x =
1 2 5 1

 a matrix x = [1 2 3; 5 1 4; 3 2 -1]

x =
1 2 3
5 1 4
3 2 -1

 transpose y = x’ y =
1 5 3
2 1 2
3 4 -1
Long Array, Matrix
 t =1:10 t = start : end

t =
1 2 3 4 5 6 7 8 9 10
 k =2:-0.5:-1 k = start : increment : end

k =
2 1.5 1 0.5 0 -0.5 -1

 x = [1:4; 5:8]

x =
1 2 3 4
5 6 7 8
Generating Vectors from functions
 zeros(M,N) MxN matrix of zeros x = zeros(1,3)
x =
0 0 0

 ones(M,N) MxN matrix of ones


x = ones(1,3)
x =
1 1 1
 rand(M,N) MxN matrix of uniformly
distributed random x = rand(1,3)
numbers on (0,1) x =
0.9501 0.2311 0.6068
Matrix Index
 The matrix indices begin from 1 (not 0 (as in C))
 The matrix indices must be positive integer
Given:

A(-2), A(0)

Error: ??? Subscript indices must either be real positive integers or logicals.

A(4,2)
Error: ??? Index exceeds matrix dimensions.
Concatenation of Matrices
 x = [1 2], y = [4 5], z=[ 0 0]

A = [ x y]

1 2 4 5

B = [x ; y]

1 2
4 5

C = [x y ;z]
Error:
??? Error using ==> vertcat CAT arguments dimensions are not consistent.
Operators (arithmetic)
+ addition
- subtraction
* multiplication
/ division
^ power
‘ complex conjugate transpose
Built-in Functions
Trigonometric sin, cos, tan, sin, acos, atan,
functions sinh, cosh, tanh, asinh,
acosh, atanh, csc, sec, cot,
acsc, …
Exponential exp, log, log10, sqrt
functions
Complex abs, angle, imag, real, conj
functions
Rounding and floor, ceil, round, mod, rem,
Remainder sign
functions
Matrices Operations

Given A and B:

Addition Subtraction Product Transpose


Operators (Element by Element)

.* element-by-element multiplication
./ element-by-element division
.^ element-by-element power
The use of “.” – “Element” Operation
A = [1 2 3; 5 1 4; 3 2 -1]
A=
1 2 3
5 1 4
3 2 -1

b = x .* y c=x./y d = x .^2
x = A(1,:) y = A(3 ,:)
b= c= d=
x= y= 3 8 -3 0.33 0.5 -3 1 4 9
1 2 3 3 4 -1
K= x^2
Error:
??? Error using ==> mpower Matrix must be square.
B=x*y
Error:
??? Error using ==> mtimes Inner matrix dimensions must agree.
Input and Output

 >> x=input('please enter a number')


 please enter a number100
 x=
 100
 >> fprintf('%d',x)
 100
Operators (relational, logical)

 == Equal to
 ~= Not equal to
 < Strictly smaller
 > Strictly greater
 <= Smaller than or equal to
 >= Greater than equal to
 & And operator
 | Or operator
Flow Control

 if
 for
 while
 break
 ….
Control Structures
Some Dummy Examples
 If Statement Syntax
if ((a>3) & (b==5))
Some Matlab Commands;
if (Condition_1) end
Matlab Commands
if (a<3)
elseif (Condition_2) Some Matlab Commands;
Matlab Commands elseif (b~=5)
Some Matlab Commands;
elseif (Condition_3) end
Matlab Commands
if (a<3)
else Some Matlab Commands;
Matlab Commands else
end Some Matlab Commands;
end
Control Structures
Some Dummy Examples
 For loop syntax for i=1:100
Some Matlab Commands;
end

for i=Index_Array for j=1:3:200


Some Matlab Commands;
Matlab Commands end

end for m=13:-0.2:-21


Some Matlab Commands;
end

for k=[0.1 0.3 -13 12 7 -9.3]


Some Matlab Commands;
end
Control Structures

 While Loop Syntax

Dummy Example
while (condition)
Matlab Commands while ((a>3) & (b==5))
Some Matlab Commands;
end end
 Example
x=ceil(10*rand(1,1));
y=input(‘Guess my number between 1 and 10:’);
if(x==y)
‘you are right’
elseif(x>y)
‘No,my number is smaller’
else
‘No,my number is greater’
end
 Another example:
x=ceil(10*rand(1,1));
sum=0;
for y=1:x
sum=sum+y;
end

Task:
Output the summation of each content of a
matrix
Use of M-File
Click to create
a new M-File

• Extension “.m”
• A text file containing script or function or program to run
Use of M-File Save file as Denem430.m

If you include “;” at the


end of each statement,
result will not be shown
immediately
Writing User Defined Functions

 Functions are m-files which can be executed by


specifying some inputs and supply some desired outputs.
 The code telling the Matlab that an m-file is actually a
function is
function out1=functionname(in1)
function out1=functionname(in1,in2,in3)
function [out1,out2]=functionname(in1,in2)

 You should write this command at the beginning of the


m-file and you should save the m-file with a file name
same as the function name
Writing User Defined Functions
 Examples
 Write a function : out=squarer (A, ind)

 Which takes the square of the input matrix if the input


indicator is equal to 1
 And takes the element by element square of the input
matrix if the input indicator is equal to 2

Same Name
Writing User Defined Functions
 Another function which takes an input array and returns the sum and product
of its elements as outputs

 The function sumprod(.) can be called from command window or an m-file as


Notes:
 “%” is the neglect sign for Matlab (equaivalent
of “//” in C). Anything after it on the same line
is neglected by Matlab compiler.
 Sometimes slowing down the execution is
done deliberately for observation purposes.
You can use the command “pause” for this
purpose
pause %wait until any key
pause(3) %wait 3 seconds
Useful Commands

 The two commands used most by Matlab


users are
>>help functionname

>>lookfor keyword
Basic Task: Plot the function sin(x)
between 0≤x≤4π
 Create an x-array of 100 samples between 0
and 4π.

>>x=linspace(0,4*pi,100);

 Calculate sin(.) of the x-array


1

0.8

0.6

>>y=sin(x); 0.4

0.2

 Plot the y-array -0.2

-0.4

-0.6

>>plot(y) -0.8

-1
0 10 20 30 40 50 60 70 80 90 100
Plot the function e-x/3sin(x) between
0≤x≤4π
 Create an x-array of 100 samples between 0
and 4π.
>>x=linspace(0,4*pi,100);

 Calculate sin(.) of the x-array


>>y=sin(x);

 Calculate e-x/3 of the x-array


>>y1=exp(-x/3);

 Multiply the arrays y and y1


>>y2=y*y1;
Plot the function e-x/3sin(x) between
0≤x≤4π
 Multiply the arrays y and y1 correctly
>>y2=y.*y1;

 Plot the y2-array


0.7

>>plot(y2) 0.6

0.5

0.4

0.3

0.2

0.1

-0.1

-0.2

-0.3
0 10 20 30 40 50 60 70 80 90 100
Display Facilities 0.7

0.6

0.5

 plot(.) 0.4

0.3

Example:
0.2

0.1
>>x=linspace(0,4*pi,100); 0

>>y=sin(x); -0.1

>>plot(y) -0.2

>>plot(x,y) -0.3
0 10 20 30 40 50 60 70 80 90 100

0.7

 stem(.) 0.6

0.5

0.4

0.3

Example:
0.2

0.1

>>stem(y) 0

>>stem(x,y) -0.1

-0.2

-0.3
0 10 20 30 40 50 60 70 80 90 100
Display Facilities
Setting Colors on Graph:
Code Code
w White
k Black
b Blue
r Red
c Cyan
g Green
m Magenta
y Yellow
Display Facilities

 title(.)
>>title(‘This is the sinus function’)
This is the sinus function
1

0.8

 xlabel(.) 0.6

0.4

>>xlabel(‘x (secs)’) 0.2

sin(x)
0

 ylabel(.) -0.2

-0.4

-0.6

-0.8
>>ylabel(‘sin(x)’) -1
0 10 20 30 40 50 60 70 80 90 100
x (secs)
Thank You…

You might also like