Powerful Google developer tools for immediate impact! (2023-24 C)
Basics of programming in matlab
1. SESSION-1
INTRODUCTION TO
PROGRAMMING IN MATLAB
LANGUAGE
1 S YADAV
2. Programming Basics
To Start Matlab
On Microsoft® Windows® platforms,
double-clicking the MATLAB shortcut on your
Windows desktop.
Matlab.ico
On UNIX platforms, start MATLAB by typing matlab at
the operating system prompt.
Quitting the MATLAB Program
To end your MATLAB session, select File > Exit
MATLAB in the desktop, or type quit in the Command
2 Window S YADAV
4. Basics of Matlab
Matlab has two different methods for executing commands
Interactive mode
In interactive mode, commands are typed (or cut-and-pasted) into the
'command window'.
»3+ 4
ans =
7
Batch mode.
In batch mode, a series of commands are saved in a text file (either
using Matlab's built-in editor, or another text editor ) with a '.m'
extension.
The batch commands in a file are then executed by typing the name of
the file at the Matlab command prompt.
4 S YADAV
5. Scripts and Functions
M-Files:
Files that contain code in the MATLAB language
are called M-files. You create M-files using a text
editor, then use them as you would any other
MATLAB function or command.
There are two kinds of M-files:
1. Scripts, which do not accept input arguments or
return output arguments. They operate on data in
the workspace.
2. Functions, which can accept input arguments and
return output arguments. Internal variables are
local to the function.
NOTE :The names of the M-file and of the function
should be the same.
5 S YADAV
6. Example
Scripts
x = -pi:0.01:pi;
plot(x,sin(x)), grid on
Function
%Name of function is sum1
function c=sum1(a,b)
c=a+b
end
M file names should be sum1.m
6 S YADAV
7. Variables
As in programming languages, the MATLAB language provides
mathematical expressions, but unlike most programming
languages, these expressions involve entire matrices.
MATLAB does not require any type declarations or dimension
statements. When MATLAB encounters a new variable name, it
automatically creates the variable and allocates the appropriate
amount of storage. If the variable already exists, MATLAB changes
its contents and, if necessary, allocates new storage. For example,
num_students = 25 creates a 1-by-1 matrix named num_students
and stores the value 25 in its single element.
To view the matrix assigned to any variable, simply enter the
variable name.
Variable names consist of a letter, followed by any number of
letters, digits, or underscores.(max length of variable is 63)
MATLAB is case sensitive; it distinguishes between uppercase and
lowercase letters. B and b are not the same variable.
7 S YADAV
9. MATRIX
*MATLAB IS MATRIX MANIPULATION LANGUAGE.
*MOST OF VARIABLES YOU DECLARE WILL BE
MATRICES.
*MATRIX IS RECTANGULAR ARRAY OF NUMBERS
*A is MxN MATRIX : IT MEANS ‘A’ HAS M ROWS AND N
COLUMNS
*IN MATRIX FIRST INDEX IS ROW INDEX AND SECOND
INDEX IS COLUMN INDEX
*SCALAR IS 1x1 MATRIX.
*INDEXING IN MATLAB STARTS FROM ONE(1)
9 S YADAV
10. DEFINING MATRIX IN MATLAB
Let matrix
B=
1 2 3
6 7 8
B CAN BE CREATE IN MATLAB USING SYNTAX
B=[1 2 3;6 7 8];
HOW TO ACCESS DIFFERENT ELEMENTS B(ROW ,COLUMN)
B(1,1)=1 i.e. FIRST ROW and FIRST COLUMN
B(2,1)=6 i.e. SECOND ROW FIRST COLUMN
B(2,3)=8 i.e. SECOND ROW THIRD COLUMN
10 S YADAV
11. ACCESSING SUBMATRICES
A=
11 12 13 14 15 16
17 18 19 20 21 22
23 24 25 26 27 28
A(1,:) = [11 12 13 14 15 16]
i.e. FIRST ROW AND ALL COLUMNS
A(2,:)=[17 18 19 20 21 22]
i.e. SECOND ROW AND ALL COLUMNS
A(1,1:3)=[11 12 13 ];
i.e. FIRST ROW AND ONE TO THREE COLUMNS
A(2,3:6)=[19 20 21 22 ]; i.e second row , third to sixth column.
11 S YADAV
12. ONE DIMENTION MATRIX
ONE DIMENTION MATRIX IS ALSO KNOWN AS VECTOR.
ONE DIMENTION MATRIX MAY BE EITHER
ROW MATRIX : CONTAINING ONE ROW ONLY
OR
COLUMN MATRIX:CONTAINING ONE COLUMN ONLY
HOW TO ACCES DIFFERENT ELEMENTS
A(1),A(2) WILL WORK AS IT IS ONE DIMENSIONAL VECTOR.
12 S YADAV
13. ALTERNATE WAY OF MAKING MATRICES
A=1:9
A=
1 2 3 4 5 6 7 8 9
A=1:2:9
A=
1 3 5 7 9
A=[5:-1:-5]
A=
5 4 3 2 1 0 -1 -2 -3 -4 -5
13 S YADAV
14. MATRIX BUILDING FUNCTIONS
eyes(n) will produce nxn identity matrix
eyes(m,n) will produce mxn identity matrix
ones(n) will produce nxn matrix of ones.
ones(m,n) will produce mxn matrix of ones.
zeros(m,n) will produce matrix of zeros
rand(m,n) will produce mxn matrix of randomvalue
triu(X) will extract upper triangular part of matrix X.
tril(X) will extract lower triangular part of matrix X.
14 S YADAV
15. MATRIX OPERATIONS
+ ADDITION
- SUBTRACTION
* MULTIPLICATION
^ POWER
‘ CONJUGATE TRANSPOSE
.’ TRANSPOSE
LEFT DIVISION
/ RIGHT DIVISION
THESE MATRIX OPERATIONS APPLY TO SCALARS AS WELL.
IF THE SIZES OF MATRICES ARE INCOMPATIBLE FOR THE
MATRIX OPERATION, AN ERROR MESSAGE WILL RESULT.
15 S YADAV
19. MATRIX DIVISION
IF A IS AN INVERTIBLE MATRIX AND b IS A COMPATIBLE
COLUMN VECTOR, then
x=Ab is the solution of A*x=b
[1 2 3;4 5 6; 8 9 7]*[x;y;z]=[1;2;3]
[x;y;z]=[1 2 3;4 5 6;8 9 7][1;2;3]
IF A IS AN INVERTIBLE MATRIX AND b IS A COMPATIBLE
ROW VECTOR, then
x=b/A is the solution of x*A=b
[x y z]*[1 2 3;4 5 6; 8 9 7]=[1 1 3]
[x y z]=[1 1 3]/[1 2 3;4 5 6;8 9 7]
19 S YADAV
20. STATEMENTS, EXPRESIONS AND
VARIABLES
•MATLAB is interpreted language.
•Statements are of form
variable=expression;
expression;
x=3;
y=x^3+3*x;
y=sqrt(x);
Or just
x^3+2*x ;
In this case variable ‘ans’ is automatically created to which
result is assigned
20 S YADAV
21. Continued …..
•Statement is terminated with ‘;’
•If it is not terminated with ‘;’ , result will be displayed on
screen.
•Statements can be placed on same line if they are terminated
with ‘;’
•Single statement can be continued to next line with three or
more periods e.g. y=x*x+ …..
2*x+3;
•MATLAB is case sensitive.
•who or whos will list variables in current workspace.
•inmem lists compiled m files in current memory.
21 S YADAV
22. Continued…..
•VARIABLE OR FUNCTION CAN BE CLEARED FROM
WORKSPACE
clear variablename
clear functionname
•clear WILL CLEAR ALL NON PERMANENT VARIABLES.
•ON LOGOUT ALL VARIABLES ARE LOST
•‘save’ WILL SAVE ALL VARIABLES IN FILE matlab.mat
•‘load’ WILL RESTORE WORKSPACE TO ITS FORMAL STATE.
•‘save’ and ‘load’ TAKE VARIABLE NAME AND FILENAME AS
OPTIONAL ARGUMENTS.
•edit fun opens the file fun.m in a text editor.
22 S YADAV
24. RELATIONAL OPERATORS
< LESS THAN
> GREATER THAN
<= LESS THAN OR EQUAL
>= GREATER THAN OR EQUAL
== EQUAL
~= NOT EQUAL
NOTE: = IS USED IN ASSIGNMENT AND = = IS USED IN A
RELATION
LOGICAL OPERATORS
& AND
| OR
~ NOT
RELATIONS MAY BE CONNECTED BY LOGICAL OPERATORS
24 S YADAV
25. OUTPUT OF RELATIONS OPRATION
WHEN APPLIED TO SCALAR, RELATION IS ZERO OR ONE
DEPENDING ON WHETHER THE RELATION IS TRUE OR FALSE
a=3; b=2;
c= ( a>b) ; It means c=1
c=(a<b); It means c=0
a= = b answer is 0
a~=b answer is 1
AND WHEN APPLIED TO MATRICES OF SAME SIZE, RELATION
IS MATRIX OF 0’s and 1’s GIVING VALUE OF RELATION
BETWEEN CORROSPONDING ENTERIES.
d=[1 2]; e=[1 1];
f= (d= =e); It means f=[1 0];
25 S YADAV
26. Control statement
If ,if else
For loop
While loop
Switch case
Brake ,continue etc.
26 S YADAV
27. IF
price=4500;
if price >5000,
disp('PRICE IS MORE THAN 5000');
end
27 S YADAV
28. IF ELSE
price=4500;
if price >5000,
disp('PRICE IS MORE THAN 5000');
else
disp(‘PRICE IS NOT MORE THAN 5000’);
end
28 S YADAV
29. IF ELSEIF
price=4500;
if price >5000,
disp('PRICE IS MORE THAN 5000');
elseif (1000<=price)&(price <=5000),
disp('PRICE IS BETWEEN 1000 AND 5000');
else
disp('PRICE IS LESS THAN 1000');
end
29 S YADAV
34. CONTINUED ……….
case {'subtract','sub'}
output=var1-var2;
disp(output);
case 'divide'
output=var1/var2;
disp(output);
otherwise
disp('What else you want?');
end
34 S YADAV
35. CONTINUED…….
case {'subtract','sub'}
output=var1-var2;
disp(output);
case 'divide'
output=var1/var2;
disp(output);
otherwise
disp('What else you want?');
end
35 S YADAV
36. BREAK STATEMENT
var=20;
while var>0,
disp(var);
if var==10
break;
end
var=var-1;
end
str=sprintf('Now variable is %d',var);
disp(str);
36 S YADAV
38. SCALAR FUNCTIONS
•Operate essentially on scalars.
•Operate element-wise when applied to a matrix.
sin asin exp
abs cos acos
log10 log (natural log) sqrt
floor tan atan
rem (remainder) sign
round
A=sin(1)
A=
0.8415
A=sin([1 1.2 1.3 1.4])
A=
0.8415 0.9320 0.9636 0.9854
38 S YADAV
39. VECTOR FUNCTIONS
•OPERATE ESSENTIALY ON VECTOR (ROW OR COLUMN)
•WHEN APPLIED TO MxN MATRIX, OPERATE COLUMN BY
COLUMN TO PRODUCE ROW VECTOR CONTAINING RESULT
OF APPLICATION TO EACH COLUMN.
max sum median
any min prod
mean all sort
std
max([1 2 3])
ans =
3
max([1 2 3
589
7 6 2])
ans =
39 8 9
7 S YADAV
40. MATRIX FUNCTIONS
eig eigenvalues and eigenvectors
chol cholesky factorization
svd singular value decomposition
inv inverse
lu LU factorization
qr QR factorization
rref reduced row echelon form
expm matrix exponential
40 S YADAV
43. FUNCTION CONTINUED
function result=perform(operation ,var1,var2)
switch operation
case 'multiply'
result=var1*var2;
case 'add'
result=var1+var2;
case 'subtract'
result=var1-var2;
case 'divide'
result=var1/var2;
otherwise
disp('Only multilply, add,subtract and divide operations are
allowed');
result='error';
43
end S YADAV
44. INPUT
name=input('Please enter your name : ','s');
fprintf('nHello %s !n',name);
account=input(' Please enter your account number : ');
if (25 <account)&(account<50)
disp('Welcome');
else
disp('You are not a valid user');
end
44 S YADAV