Basic MATLAB Programming Course

Post on 30-Dec-2015

62 views 7 download

description

Basic MATLAB Programming Course. What we will learn in this session. The basic MATLAB interface. Basic commands. Declaring & manipulating variables. Plotting graphs. Conditional Operators. Functions. Basic MATLAB Interface. Command window: Type your instructions here and press - PowerPoint PPT Presentation

Transcript of Basic MATLAB Programming Course

Basic MATLAB Programming Course

What we will learn in this session

The basic MATLAB interface. Basic commands. Declaring & manipulating variables. Plotting graphs. Conditional Operators. Functions.

Basic MATLAB Interface

Command window: Type your instructions here and press ENTER to execute them.

Example: Declare a column matrix withvalues 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.

To assign a value to bbb, you can do it intwo ways: 1) Using the command window.

2) Or by double clicking on bbb.

When you click on bbb, the variableeditor window appears. You can typein 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 F1to 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 willdisplay the editor window.The editor creates an m-filethat can be used to write your MATLAB programs.

To execute a program, pressthe RUN button.

This window will appear. Press the Change Directory button.

You can see that the program hascreated two new variables in the Workspace.

Basic Commands

Variables

MATLAB can be used to initialize and manipulate many types of variables.Single value.MatrixString

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:

43

21A

Try It Yourself

Create this matrix:

535

542

542

matrixB

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:

Try to get values 9, 3 and 1 from the matrix and save it into three variables.

176

1098

543

matrixB

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:

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.

176

1098

543

matrixB

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

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 matrixclear, close allclc xxx = 1:100 yyy = rand(1,100) plot(xxx,yyy)

Example

Example: Draw sin(x)

clear, close allclc x = 0:pi/36:10*piy = sin(x) plot(x,y,‘m')

Example

Plot Styles

Plot Styles

Example: Plotting the lines using line parametersclear, close allclc 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 newfigure, plot(xxx,yyy,':mo')% figure each time a plot

% is made.

Example: Drawing two plots in the same figureclear, close allclc xxx = 1:100yyy = rand(1,100) aaa = 1:100bbb = rand(1,100) plot(xxx,yyy,'r')hold onplot(aaa,bbb,'-.gv')hold off

Example: Drawing Bar Graphs

clear, close all

clc

x = 0:pi/36:2*pi

y = cos(x)

bar(x,y,'b')

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 allclc 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 blockelse % else blockend

% 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 allclc 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 allclc 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 allclc % i is the value of the counterfor 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 loopclear, close allclc 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 Matrixclear, close allclc 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 endend

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 loopclear, close allclc 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 allclc 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 allclc 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 when given the radius. The volume calculation must be performed in a function called calcSphereVolume.

The formula for volume is:

3

3

4jV

Problem 2

Write a program that plots the function:

for values of x = -50 to 50

6323 xxxy

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