What we will learn in this session
Introduction to Matlab
The basic MATLAB interface.
Basic commands.
Declaring & manipulating variables.
Plotting graphs.
Conditional Operators.
Functions.
What is Matlab?
The name MATLAB stands for matrix
laboratory.
MATLAB was originally written to provide
easy access to matrix software developed
by the LINPACK and EISPACK projects,
which together represent the state-of-the-art
in software for matrix computation.
MATLAB is a numerical computing
environment and fourth generation
programming language. Developed by The
MathWorks
Matlab had many functions and toolboxes
to help in various applications
It allows you to solve many technical
computing problems, especially those with
matrix and vector formulas, in a fraction of
the time it would take to write a program in
a scalar non-interactive language such as
C or Fortran.
What is Matlab?
MATLAB is a high-performance language for technical
computing.
It integrates computation, visualization, and programming
in an easy-to-use environment where problems and
solutions are expressed in familiar mathematical notation.
Typical uses include:
Algorithm development
Math and computation
Modeling, simulation, and prototyping
Data analysis, exploration, and visualization
Scientific and engineering graphics
Application development, including Graphical User
Interface building.
Matlab Programming Environment
Matlab (Matrix Laboratory) is a
dynamic, interpreted,
environment for matrix/vector
analysis
Variables are created at run-time,
matrices are dynamically re-sized,
…
User can build programs (in .m
files or at command line) using a
C/Java-like syntax
Ideal environment for model
building, system identification and
control (both discrete and
continuous time)
Wide variety of libraries
(toolboxes) available
Matlab Programming Environment
Variable Command
Click on the Matlab window
icon/start menu browser
initialises the Matlab
environment:
The main window is
the dynamic
command interpreter
which allows the
user to issue Matlab
commands
The variable
browser shows
which variables Command history
currently exist in the
The MATLAB System
MATLAB system consists of these main
parts:
Desktop Tools and Development Environment
Includes the MATLAB desktop and Command
Window, an editor and debugger, a code analyzer,
browsers for viewing help, the workspace, files, and
other tools
Mathematical Function Library
vast collection of computational algorithms ranging
from elementary functions, like sine, cosine, and
complex arithmetic, to more sophisticated functions
like matrix inverse, matrix eigenvalues, Bessel
functions, and fast Fourier transforms.
The Language
The MATLAB language is a high-level matrix/array
language with control flow statements, functions, data
structures, input/output, and object-oriented programming
features.
Graphics
MATLAB has extensive facilities for displaying vectors and
matrices as graphs, as well as editing and printing these
graphs. It also includes functions that allow you to
customize the appearance of graphics as well as build
complete graphical user interfaces on your MATLAB
applications.
External Interfaces
The external interfaces library allows you to write C and
Fortran programs that interact with MATLAB.
Main Matlab Window
Basic MATLAB
Interface
Command window: Type your
instructions here and press
ENTER to execute them.
Example: Declare a column matrix with
values 1,2 and 3.
Command history: a list of instructions
executed by MATLAB is shown here.
Workspace: shows a list of
variables created by MATLAB.
As you can see, the value of ‘aaa’
is shown.
Another way to create a variable
Is to press this button.
MATLAB will prompt you to enter
the variable name.
As you can see, the variable
name has been changed to bbb.
2) Or by double clicking
on bbb.
To assign a value to bbb, you can do it in
two ways: 1) Using the command window.
When you click on bbb, the variable
editor window appears. You can type
in new values into bbb by filling in the
cells.
An example is shown here.
Try and do it yourself.
To display variables at the console,
you can type the variable name,
or you can type disp(variable_name).
To clear all variables from
memory and close all
figures, use the
clear, close all command.
As you can see, all workspace
variables are deleted when
you execute this command.
To clear the command window,
use the clc (clear console) command.
As you can see, all console
entries are deleted when
you execute this command.
If you want to see help,
you can type help at the
command window.
Or you can press F1
to display the help
window. Click on
Open Help Browser
to search for a
specific function.
Example: search for
function mean
To create an m-file, 1) type edit at
the command window, or
2) Press this button.
The previous command will
display the editor window.
The editor creates an m-file
that can be used to write
your MATLAB programs.
To execute a program, press
the RUN button.
This window will appear. Press the
Change Directory button.
You can see that the program has
created two new variables in the
Workspace.
Basic Commands
Variables
MATLAB can be used to initialize and
manipulate many types of variables.
Single value.
Matrix
String
Declaring Single Variables
To declare single variables, type in a
variable name and type in its value.
MATLAB will decide on the data type
automatically, so you don’t have to declare
its data type.
Example:
var1 = 3;
thisIsAVariable = 56;
Declaring Single Variables
Variables cannot have numbers or
symbols in front of them.
Example of illegal variable names:
1var
#aaa
Matrix Variables
Matrix variables are initialized similar to
single variables.
The values in a matrix variable is defined
in square brackets.
Example:
aaa = [1,2,3,4];
bbb = [1;2;3;4];
Row Matrix
To create a row matrix, use the comma to
separate the values.
Example:
rowMatrix = [1,2,3,4,5];
Example
Try It Yourself
Create a row matrix named var1 with the
values of 1, 3, 5 in it.
Create a row matrix named mat1 with the
values of 10, 20, 30, 40, 50, 60 in it.
Create a row matrix named var2 with the
values of 1, 3, 5, 6, 8, 10, 11 in it.
Column Matrix
To create a column matrix, use the
semicolon to separate the values.
Example:
colMatrix = [1;2;3;4;5];
Example
Try It Yourself
Clear and close all variables, and clear console.
Create a column matrix named col1 with the
values of 2, 6, 9 in it.
Create a column matrix named mat3 with the
values of 15, 23, 37, 48, 59, 61 in it.
Create a column matrix named colMatrix with
the values of 1, 3, 5, 6, 8, 10, 11 in it.
Regular Matrix
To create a regular matrix, use the comma
to separate each value in a row, and a
semicolon to enter the value for a new
row.
Example:
mat1 = [1,2,3;4,5,6;7,8,9];
Example
Try It Yourself
Create this matrix:
1 2
A
3 4
Try It Yourself
Create this matrix:
2 4 5
matrixB 2 4 5
5 3 5
Accessing Matrix Values
To access a specific value inside a matrix,
use this command:
matrixName(rowNumber, colNumber)
Example: to access a value inside row 3
and column 2.
matrixName(3,2)
Try It Yourself
Create this matrix:
3 4 5
matrixB 8 9 10
6 7 1
Try to get values 9, 3 and 1 from the matrix
and save it into three variables.
Accessing Whole Columns and
Rows
To get a whole column, use this
command:
varA = matName(:,colNumber);
To get a whole row, use this command:
varA = matName(rowNumber,:);
Example
Try it Yourself
Create this matrix:
3 4 5
matrixB 8 9 10
6 7 1
Get all the values from row 3 and save it into a new
variable.
Get all the values from column 1 and save it into a new
variable.
Creating a Matrix of Zeros
To create a matrix of zeros, use the zeros
command.
Example: create a 6 X 5 matrix of zeros.
zeros(6,5)
Example
Creating a Matrix of Ones
To create a matrix of ones, use the ones
command.
Example: create a 5 X 3 matrix of ones.
ones(5,3)
Example
Creating a Matrix of Random
Numbers
To create a matrix of random numbers,
use the rand command.
Example: create a 4 X 4 matrix of random
numbers.
rand(4,4)
Example
Getting the Size of the Matrix
To get the size of the matrix, use the size
command.
Example: to get the size of matrix aaa.
[numRow, numCol] = size(aaa);
Example
Transposing a Matrix
A transpose operation changes the
column of a matrix into rows, and rows into
columns.
To do a transpose, use the single quote
operator.
Example: Transposing a Row
Matrix
Example: Transposing a Column
Matrix
Example: Transposing a Regular
Matrix
Finding the Maximum Value
To find the maximum value for a matrix,
use the max function.
Example: find the maximum value in
matrix aaa.
maxVal = max(aaa);
Example
Max finds the
maximum value
in each column
When it is run again
on the result, it
returns the single-largest
value in the matrix.
Finding the Minimum Value
To find the minimum value for a matrix,
use the min function.
Example: find the minimum value in matrix
aaa.
minVal = min(aaa);
Example
Min finds the
minimum value
in each column
When it is run again
on the result, it
returns the minimum
value in the matrix.
Finding the Sum of Columns
To find the sum of each column, use the
sum command.
Example: find the sum for each column in
matrix aaa.
colSum = sum(aaa);
Example
Adding Matrices
To add matrices, use the + operator.
Example: add matrices A and B.
A + B.
Make sure that the matrices are the same
size.
Example
Subtracting Matrices
To subtract matrices, use the - operator.
Example: subtract matrix B from A.
A - B.
Make sure that the matrices are the same
size.
Example
Multiplying Matrices
To multiply matrices, use the .* operator.
Example: multiply matrices A and B.
A .* B.
Make sure that the matrices are the same
size.
Example
Dividing Matrices
To divide matrices, use the ./ operator.
Example: divide matrices A with B.
A ./ B.
Make sure that the matrices are the same
size.
Example
Sorting Matrices
To sort a matrix, use the sort command.
Example: sort matrix A in ascending order.
B = sort(A,’ascend/descend’)
Default is ascending mode.
Example: Sorting a Row Matrix
Example: Sorting a Column Matrix
Example: Sorting a Regular Matrix
Example: Sorting a Row Matrix in
Descend Mode
Flipping a Matrix
A matrix can be flipped using the flipud or
fliplr commands.
Command flipud flips the matrix in
UP/DOWN direction.
Command fliplr flips the matrix in
LEFT/RIGHT direction.
Example: flipud
Example: fliplr
Matrix Operations
+ addition
- subtraction
* multiplication
/ division
^ power or exponenentiation
() specify evaluation order
Sqrt (4)
B = sqrt(4)
2 ka table 2 show increment diff kaha 20
Date current date
Clock date, time
Ver matalab ,simulink and tool box versions information
Whos all variable present in the work space
What list matlab specific files in directory
Clc to clear the screen
Clear to clear the workspace
Close all to clear all windows
Dairy
Dairy file name to keep track of every thing done during a matlab
session
Dairy off
Dairy on
Quit/exit close matlab session
Operation on Matrix
sum(A) - sum each col of A
A’ - transpose of A
diag(A) - diagonal elements
det(A) - compute determinant of A
inv(A) - compute inverse of A
Array Operations
Evaluated element by element
.' : array transpose (non-conjugated
transpose)
.^ : array power
.* : array multiplication
./ : array division
Very different from Matrix operations
>> A=[1 2;3 4]; But:
>> B=[5 6;7 8]; >> A.*B
>> A*B 5 12
19 22 21 32
43 50
Some Built-in functions
mean(A):mean value of a vector
max(A), min (A): maximum and minimum.
sum(A): summation.
sort(A): sorted vector
median(A): median value
std(A): standard deviation.
det(A) : determinant of a square matrix
dot(a,b): dot product of two vectors
Cross(a,b): cross product of two vectors
Inv(A): Inverse of a matrix A
Strings
MATLAB also can accept and manipulate
string variables.
A string is defined by enclosing it in single
quotes.
Example: aString = ‘Hello World!’
Example: Initializing a String
Converting a String to Lowercase
To convert a string to lowercase, use the
lower command.
Example: change string in matrix A to
lowercase:
B = lower(A)
Example: Change String to
Lowercase
Converting a String to Uppercase
To convert a string to uppercase, use the
upper command.
Example: change string in matrix A to
uppercase:
B = upper(A)
Example: Change String to
Uppercase
Concatenate Strings
Concatenating string means merging two
or more strings together.
To concatenate strings, use the strcat
command.
Example: to concatenate str1 and str2:
newStr = strcat(str1,str2)
Example: Concatenate String
Replace String
To replace part of the string with a new
value, use the strrep command.
Example: replace the word ‘lama’ with the
word ‘baru’ in the string str1.
strrep(str1,’lama’,’baru’)
Example: Replace String
Plot
Plot Function
The plot function can be used to draw the
relationship between two variables.
Format:
plot(x,y,lineParameters)
Example: Plot the values of a
random matrix
clear, close all
clc
xxx = 1:100
yyy = rand(1,100)
plot(xxx,yyy)
Example
Example: Draw sin(x)
clear, close all
clc
x = 0:pi/36:10*pi
y = sin(x)
plot(x,y,‘m')
Example
Plot Styles
Plot Styles
Example: Plotting the lines using
line parameters
clear, close all
clc
xxx = 1:100
yyy = rand(1,100)
plot(xxx,yyy)
figure, plot(xxx,yyy,'g:') % the command figure is
figure, plot(xxx,yyy,'r--')% used to create a new
figure, plot(xxx,yyy,':mo')% figure each time a plot
% is made.
Example: Drawing two plots in the
same figure
clear, close all
clc
xxx = 1:100
yyy = rand(1,100)
aaa = 1:100
bbb = rand(1,100)
plot(xxx,yyy,'r')
hold on
plot(aaa,bbb,'-.m')
hold off
Example: Drawing Bar Graphs
clear, close all
clc
x = 0:pi/36:2*pi
y = cos(x)
bar(x,y,‘r')
Example
Example: Drawing a Stair-Step Plot
clear, close all
clc
x = -10:0.5:10
y = x.^2 + 2.*x + 2
stairs(x,y,'b')
Example
Image Manipulation
Reading and Displaying an Image
To read an image, use the imread
command.
Example: read an image file named
‘c:\aaa.jpg’ and store it in matrix A.
A = imread(‘c:\aaa.jpg’)
To display an image, use the imshow(A)
command.
Example: Read and Display Image
Manipulating an Image: Convert to
Grayscale
To convert an RGB image to grayscale,
use the rgb2gray command.
Example: convert image A to grayscale:
B = rgb2gray(A)
Example: Convert to Grayscale
clear, close all
clc
aaa = imread('d:\My Documents\My Pictures\50294.jpg');
figure, imshow(aaa)
bbb = rgb2gray(aaa)
figure, imshow(bbb)
Saving an Image
To save an image, use the imwrite
command.
Example: write image a into file xxx.jpg:
imwrite(A,’xxx.jpg’,’jpg’)
Conditional
Operators
If…else Operator
The if…else operator tests a condition.
If the condition is true, then execute the if
block.
If the condition is false, execute the else
block.
If…else Operator
if (condition)
% if block
else
% else block
end
% conditions that can be tested
% == : is equal to
% ~= : is not equal to
% > : larger than
% >= : larger than or equal
% <= : less than or equal
% < : less than
Example
clear, close all
clc
aaa = rand(1,100);
bbb = 1:1:100
color = 1;
if (color == 1)
% if block
figure, plot(bbb,aaa,':r');
else
% else block
figure, plot(bbb,aaa,'b');
end
Example
clear, close all
clc
x = 3;
if (x > 5)
disp('The number is more than 5.')
elseif (x == 5)
disp('The number is equal to 5.')
else
disp('The number is less than 5.')
end
For loop
Used to repeat a set of statements
multiple times.
The for loop format is:
for(startingvalue:increment:endingvalue)
For Loop
clear, close all
clc
% i is the value of the counter
for i = initial_value:increment:ending_value
% statements in this block will be executed
until i
% reaches the ending_value
end
Example: Display value inside for
loop
clear, close all
clc
for i = 1:1:15
st1 = strcat('The value of i inside the
loop is: ',int2str(i));
disp(st1)
end
Example: Display “Hello World” 10
Times
st1 = 'Hello World!';
for i = 1:1:10
disp(st1)
end
Example: Check Value Inside
Matrix
clear, close all
clc
matA = [1.4,4.2,6.7,7.0; 5.5,6.7,8.9,3.0; 0.6,6.12,5.44,8.94]
[row,col] = size(matA)
for i = 1:1:row
for j = 1:1:col
currNo = matA(i,j);
st1 = strcat('The value being tested is: ', num2str(currNo),'.');
disp(st1)
if (currNo > 3)
disp('The current value is larger than 3.')
else
disp('The current value is less or equal than 3.')
end
end
end
While loop
Used to repeat a set of statements while
the tested condition is true.
The while loop format is:
while(condition)
The tested condition is the same as
if…else
Conditions that can be tested
% conditions that can be tested
% == : is equal to
% ~= : is not equal to
% > : larger than
% >= : larger than or equal
% <= : less than or equal
% < : less than
Example: Display value inside for
loop
clear, close all
clc
counter = 1;
while(counter <= 15)
st1 = strcat('The value of i inside the loop is:
',int2str(counter));
disp(st1)
counter = counter + 1;
end
Example: Display “Hello World” 10
Times
clear, close all
clc
st1 = 'Hello World!';
counter = 1;
while(counter <= 10)
disp(st1)
counter = counter + 1;
end
Functions
Functions
A complex program may be divided into
several functions.
These functions can improve readability of
the code, as well as promote re-usability of
the code.
Each function must be saved into a
different file, with the filename similar to
the function.
Function
The format of a function is:
function returnValue = fcnName(inputValue)
Example
function hasil = addFcn(number1, number2)
hasil = number1 + number2;
% to call this function, call the fcn name
% using your own parameters.
% e.g. c = addFcn(3,4)
% e.g. c = addFcn(a,b)
Example: Using Functions
clear, close all
clc
number1 = 4;
number2 = 5;
selection = 1;
if selection == 1
hasil = addFcn(number1,number2);
elseif selection == 2
hasil = subFcn(number1,number2);
elseif selection == 3
hasil = mulFcn(number1,number2);
elseif selection == 4
hasil = divFcn(number1,number2);
else
disp('The selection is invalid.')
end
disp(strcat('The result is:', num2str(hasil)));
addFcn
function hasil = addFcn(number1, number2)
hasil = number1 + number2;
subFcn
function hasil = subFcn(number1, number2)
hasil = number1 - number2;
mulFcn
function hasil = mulFcn(number1, number2)
hasil = number1 * number2;
divFcn
function hasil = divFcn(number1, number2)
hasil = number1 / number2;
Sample Problems
Problem 1
Write a program that
calculates and displays
the volume of a sphere
4 3
V j
when given the radius.
The volume calculation
must be performed in a
function called
calcSphereVolume.
The formula for volume
3
is:
Problem 2
Write a program that plots the function:
y x x 3x 6
3 2
for values of x = -50 to 50
Solutions: x = -50:1:50;
y = x.^3+x.^2+3*x+6
plot(x,y)
xlabel('x');
ylabel('y');
title(' y = x.^3+x.^2+3*x+6');
plot(x,y,'p')
Problem 3
Generate a 100x50 matrix of random
numbers called A.
For each value inside the matrix, if the
value is above 0.5, change its value to 1.
If it is below 0.5, change its value to zero.
Then, count and display how many ones
inside the matrix.
Problem 4
Use the plot function to draw this figure:
Problem 5
Write a program that reads an image and
converts the image into its negative.
To convert to a negative image, for each pixel
value:
If the current pixel value is black (0), then change it to
white (255).
If the current pixel value is white (255), then change it
to black (0).
Show the original image and the changed
image.
White = 255, Black = 0
The End