Introduction to MATLAB. Outline 2 Introduction MATLAB Environment Getting Help Vectors,...

Preview:

Citation preview

Introduction to MATLAB

Outline

2

Introduction MATLAB Environment Getting Help Vectors, Matrices, and Linear Algebra Plotting User Defined Functions Image Manipulation and Processing Audio Processing Filters and Operations

Multimedia Systems (koochari@iust.ac.ir)

Introduction MATLAB Stands for MATrix LABoratory. 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.

A script can be made with a list of MATLAB commands like other programming language.

Multimedia Systems (koochari@iust.ac.ir)3

Environment

Multimedia Systems (koochari@iust.ac.ir)4

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

Or simply press ‘F1’ and use the graphical help window.

Multimedia Systems (koochari@iust.ac.ir)5

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. when a semi-colon

>> tutorial = 1234; >> tutorial = 1234

”;” is placed at the end of each command, the result is not displayed.

Multimedia Systems (koochari@iust.ac.ir)6

Variables (Cont’d) 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 variables, 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.

Multimedia Systems (koochari@iust.ac.ir)7

Vectors >> 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; ]

y =

0

0.7854

1.5708 y

2.3562

3.1416

Multimedia Systems (koochari@iust.ac.ir)8

Vectors (Cont’d) Vector Addressing – A vector element is addressed in

MATLAB with an integer index enclosed in parentheses. >> x(3) 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.

>> x(1:3)ans =

0 0.7854 1.5708 NOTE: MATLAB index starts at 1.

Multimedia Systems (koochari@iust.ac.ir)9

Vectors (Cont’d)

Multimedia Systems (koochari@iust.ac.ir)10

Array Operations Scalar-Array Mathematics:

Element-by-Element Array-ArrayMathematics:

Multimedia Systems (koochari@iust.ac.ir)11

Matrices 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.

Matrix Addressing: matrixname(row, column) colon may be used in place of a row or

column reference to select the entire row or column.

Multimedia Systems (koochari@iust.ac.ir)12

Matrices (Cont’d)

Multimedia Systems (koochari@iust.ac.ir)13

Matrices (Cont’d)

Multimedia Systems (koochari@iust.ac.ir)14

Example, Linear Equations

Multimedia Systems (koochari@iust.ac.ir)15

Plotting Plotting Curves:

plot (x,y) – generates a linear plot of the values of x (horizontal axis) and y (vertical axis). semilogx (x,y) – generate a plot of the values of x and y using a logarithmic scale for x and a

linear scale for y semilogy (x,y) – generate a plot of the values of x and y using a linear scale for x and a

logarithmic scale for y. loglog(x,y) – generate a plot of the values of x and y using logarithmic scales for both x and y

Multiple Curves: plot (x, y, w, z) – multiple curves can be plotted on the same graph by using multiple arguments in

a plot command. The variables x, y, w, and z are vectors. Two curves will be plotted: y vs. x, and z vs. w.

legend (‘string1’, ‘string2’,…) – used to distinguish between plots on the same graph Multiple Figures:

figure (n) – used in creation of multiple plot windows. place this command before the plot() command, and the corresponding figure will be labeled as “Figure n”

close – closes the figure n window. close all – closes all the figure windows.

Subplots: subplot (m, n, p) – m by n grid of windows, with p specifying the current plot as the pth window

Multimedia Systems (koochari@iust.ac.ir)16

Plotting (Cont’d)

Multimedia Systems (koochari@iust.ac.ir)17

Flow Control

Multimedia Systems (koochari@iust.ac.ir)18

Loops

break – is used to terminate the execution of the loop.

Multimedia Systems (koochari@iust.ac.ir)19

M-Files A M-file is 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)

Multimedia Systems (koochari@iust.ac.ir)20

User Defined Functions Add the following command in the beginning of your m-

file: function [output variables] = function_name (input

variables); Note that the file name should be the same as the function

name.

Multimedia Systems (koochari@iust.ac.ir)21

Images in MATLAB

MATLAB can import/export several image formats BMP (Microsoft Windows Bitmap) GIF (Graphics Interchange Files) HDF (Hierarchical Data Format) JPEG (Joint Photographic Experts

Group) PCX (Paintbrush) PNG (Portable Network Graphics) TIFF (Tagged Image File Format) XWD (X Window Dump) MATLAB can also load raw-data or

other types of image data

• Data types in MATLAB– Double (64-bit double-precision

floating point)– Single (32-bit single-precision

floating point)– Int32 (32-bit signed integer)– Int16 (16-bit signed integer)– Int8 (8-bit signed integer)– Uint32 (32-bit unsigned integer)– Uint16 (16-bit unsigned integer)– Uint8 (8-bit unsigned integer)

22 Multimedia Systems (koochari@iust.ac.ir)

Images in MATLAB• Binary images : {0,1}

• Intensity images : [0,1] or uint8, double etc.

• RGB images : m-by-n-by-3

• Indexed images : m-by-3 color map

• Multidimensional images m-by-n-by-p (p is the number of layers)

23 Multimedia Systems (koochari@iust.ac.ir)

Image import and export Read and write images in Matlab

>> I=imread('cells.jpg');

>> imshow(I)

>> size(I)

ans = 479 600 3 (RGB image)

>> Igrey=rgb2gray(I);

>> imshow(Igrey)

>> imwrite(lgrey, 'cell_gray.tif', 'tiff')

Alternatives to imshow>>imagesc(I)

>>imtool(I)

>>image(I)

24 Multimedia Systems (koochari@iust.ac.ir)

Images and Matrices How to build a matrix (or image)?

>> A = [ 1 2 3; 4 5 6; 7 8 9 ]; A = 1 2 3

4 5 67 8 9

>> B = zeros(3,3) B = 0 0 0

0 0 00 0 0

>> C = ones(3,3) C = 1 1 1

1 1 11 1 1

>>imshow(A) (imshow(A,[]) to get automatic pixel range)

25 Multimedia Systems (koochari@iust.ac.ir)

Image format conversion Convert between intensity/indexed/RGB to binary format:

dither() Convert between intensity format to indexed format:

gray2ind() Convert between indexed format to intensity format:

ind2gray() Convert between indexed format to RGB format:

ind2rgb() Convert a regular matrix to intensity format by scaling:

mat2gray() Convert between RGB format to intensity format:

rgb2gray() Convert between RGB format to indexed format:

rgb2ind()

Multimedia Systems (koochari@iust.ac.ir)26

Colormaps I = imread (‘lena.bmp’); imshow (I); colormap (cool);

Autumn, bone, colorcube, cool, copper, flag, gray, hot, hsv, jet, pink, prism, spring, summer, white, winter

Multimedia Systems (koochari@iust.ac.ir)27

Video mov = aviread(filename) mov = aviread(filename, index)

fileinfo = aviinfo(filename)

Multimedia Systems (koochari@iust.ac.ir)28

Digital Audio

Multimedia Systems (koochari@iust.ac.ir)29

Audio [road,fs]=wavread('road.wav'); The array road now contains the stereo sound data and fs

is the sampling frequency.  This data is sampled at the same rate as that on a music

CD (fs=44,100 samples/second).

The left and right channel signals are the two columns of the road array:

 left=road(:,1); right=road(:,2);

Multimedia Systems (koochari@iust.ac.ir)30

time=(1/44100)*length(left); t=linspace(0,time,length(left)); plot(t,left) xlabel('time (sec)'); ylabel('relative signal strength')

soundsc(left,fs)       % plays left channel as mono  soundsc(right,fs)    % plays right channel mono (sound

nearly the same)  soundsc(road,fs)     % plays stereo (ahhh…)

Multimedia Systems (koochari@iust.ac.ir)31

Multimedia Systems (koochari@iust.ac.ir)32

Multimedia Systems (koochari@iust.ac.ir)33

Multimedia Systems (koochari@iust.ac.ir)34

Multimedia Systems (koochari@iust.ac.ir)35

Multimedia Systems (koochari@iust.ac.ir)36

Recommended