VIEWS: 261 PAGES: 73 CATEGORY: Templates POSTED ON: 4/16/2010
Introduction to MATLAB 1 Topics.. 2 What is MATLAB ?? Basic Matrix Operations Script Files and M-files Some more Operations and Functions APPLICATIONS: Plotting functions .. Image Processing Basics .. Robotics Applications .. GUI Design and Programming Topics.. 3 What is MATLAB ?? Basic Matrix Operations Script Files and M-files Some more Operations and Functions APPLICATIONS: Plotting functions .. Image Processing Basics .. Robotics Applications .. GUI Design and Programming MATLAB 4 MATLAB is a program for doing numerical computation. It was originally designed for solving linear algebra type problems using matrices. It‟s name is derived from MATrix LABoratory. MATLAB has since been expanded and now has built-in functions for solving problems requiring data analysis, signal processing, optimization, and several other types of scientific computations. It also contains functions for 2-D and 3-D graphics and animation. MATLAB 5 Everything in MATLAB is a matrix ! MATLAB 6 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. The MATLAB User Interface 7 MATLAB 8 To get started, type one of these commands: helpwin, helpdesk, or demo » a=5; » b=a/2 b= 2.5000 » MATLAB Variable Names 9 Variable names ARE case sensitive Variable names can contain up to 63 characters (as of MATLAB 6.5 and newer) Variable names must start with a letter followed by letters, digits, and underscores. MATLAB Special Variables 10 ans Default variable name for results pi Value of eps Smallest incremental number inf Infinity NaN Not a number e.g. 0/0 i and j i = j = square root of -1 realmin The smallest usable positive real number realmax The largest usable positive real number Topics.. 11 What is MATLAB ?? Basic Matrix Operations Script Files and M-files Some more Operations and Functions APPLICATIONS: Plotting functions .. Image Processing Basics .. Robotics Applications .. GUI Design and Programming Math & Assignment Operators 12 Power ^ or .^ a^b or a.^b Multiplication * or .* a*b or a.*b Division / or ./ a/b or a./b or \ or .\ b\a or b.\a NOTE: 56/8 = 8\56 - (unary) + (unary) Addition + a+b Subtraction - a-b Assignment = a=b (assign b to a) Other MATLAB symbols 13 >> prompt ... continue statement on next line , separate statements and data % start comment which ends at end of line ; (1) suppress output (2) used as a row separator in a matrix : specify range MATLAB Relational Operators 14 MATLAB supports six relational operators. Less Than < Less Than or Equal <= Greater Than > Greater Than or Equal >= Equal To == Not Equal To ~= MATLAB Logical Operators 15 MATLAB supports three logical operators. not ~ % highest precedence and & % equal precedence with or or | % equal precedence with and MATLAB Matrices 16 MATLAB treats all variables as matrices. For our purposes a matrix can be thought of as an array, in fact, that is how it is stored. Vectors are special forms of matrices and contain only one row OR one column. Scalars are matrices with only one row AND one column MATLAB Matrices 17 A matrix with only one row AND one column is a scalar. A scalar can be created in MATLAB as follows: » a_value=23 a_value = 23 MATLAB Matrices 18 A matrix with only one row is called a row vector. A row vector can be created in MATLAB as follows (note the commas): » rowvec = [12 , 14 , 63] rowvec = 12 14 63 MATLAB Matrices 19 A matrix with only one column is called a column vector. A column vector can be created in MATLAB as follows (note the semicolons): » colvec = [13 ; 45 ; -2] colvec = 13 45 -2 MATLAB Matrices 20 A matrix can be created in MATLAB as follows (note the commas AND semicolons): » matrix = [1 , 2 , 3 ; 4 , 5 ,6 ; 7 , 8 , 9] matrix = 1 2 3 4 5 6 7 8 9 Extracting a Sub-Matrix 21 A portion of a matrix can be extracted and stored in a smaller matrix by specifying the names of both matrices and the rows and columns to extract. The syntax is: sub_matrix = matrix ( r1 : r2 , c1 : c2 ) ; where r1 and r2 specify the beginning and ending rows and c1 and c2 specify the beginning and ending columns to be extracted to make the new matrix. MATLAB Matrices 22 A column vector can be Here we extract column 2 extracted from a matrix. of the matrix and make a As an example we create a column vector: matrix below: » matrix=[1,2,3;4,5,6;7,8,9] » col_two=matrix( : , 2) matrix = col_two = 1 2 3 4 5 6 2 7 8 9 5 8 MATLAB Matrices 23 A row vector can be Here we extract row 2 of extracted from a matrix. the matrix and make a As an example we create row vector. Note that a matrix below: the 2:2 specifies the second row and the 1:3 » matrix=[1,2,3;4,5,6;7,8,9] specifies which columns of the row. matrix = » rowvec=matrix(2 : 2 , 1 : 3) 1 2 3 4 5 6 rowvec = 7 8 9 4 5 6 Topics.. 24 What is MATLAB ?? Basic Matrix Operations Script Files and M-files Some more Operations and Functions APPLICATIONS: Plotting functions .. Image Processing Basics .. Robotics Applications .. GUI Design and Programming Use of M-File 25 There are two kinds of M-files: Scripts, which do not accept input arguments or return output arguments. They operate on data in the workspace. Functions, which can accept input arguments and return output arguments. Internal variables are local to the function. Click to create a new M-File M-File as script file 26 Save file as filename.m Type what you want to do, eg. Create matrices If you include “;” at the end of each statement, result will not be shown immediately Run the file by typing the filename in the command window Reading Data from files 27 MATLAB supports reading an entire file and creating a matrix of the data with one statement. >> load mydata.dat; % loads file into matrix. % The matrix may be a scalar, a vector, or a % matrix with multiple rows and columns. The % matrix will be named mydata. >> size (mydata) % size will return the number % of rows and number of % columns in the matrix >> length (myvector) % length will return the total % no. of elements in myvector Topics.. 28 What is MATLAB ?? Basic Matrix Operations Script Files and M-files Some more Operations and Functions APPLICATIONS: Plotting functions .. Image Processing Basics .. Robotics Applications .. GUI Design and Programming Some Useful MATLAB commands 29 who List known variables whos List known variables plus their size help >> help sqrt Help on using sqrt lookfor >> lookfor sqrt Search for keyword sqrt in m-files what >> what a: List MATLAB files in a: clear Clear all variables from work space clear x y Clear variables x and y from work space clc Clear the command window Some Useful MATLAB commands 30 what List all m-files in current directory dir List all files in current directory ls Same as dir type test Display test.m in command window delete test Delete test.m cd a: Change directory to a: chdir a: Same as cd pwd Show current directory which test Display directory path to „closest‟ test.m MATLAB Logical Functions 31 MATLAB also supports some logical functions. xor (exclusive or) Ex: xor (a, b) Where a and b are logical expressions. The xor operator evaluates to true if and only if one expression is true and the other is false. True is returned as 1, false as 0. any (x) returns 1 if any element of x is nonzero all (x) returns 1 if all elements of x are nonzero isnan (x) returns 1 at each NaN in x isinf (x) returns 1 at each infinity in x finite (x) returns 1 at each finite value in x Matlab Selection Structures 32 An if - elseif - else structure in MATLAB. Note that elseif is one word. if expression1 % is true % execute these commands elseif expression2 % is true % execute these commands else % the default % execute these commands end MATLAB Repetition Structures 33 A for loop in MATLAB for x = array for ind = 1:100 b(ind)=sin(ind/10) end while loop in MATLAB while expression while x <= 10 % execute these commands end x=0.1:0.1:10; b=sin(x); - Most of the loops can be avoided!!! Scalar - Matrix Addition 34 » a=3; » b=[1, 2, 3;4, 5, 6] b= 1 2 3 4 5 6 » c= b+a % Add a to each element of b c= 4 5 6 7 8 9 Scalar - Matrix Subtraction 35 » a=3; » b=[1, 2, 3;4, 5, 6] b= 1 2 3 4 5 6 » c = b - a %Subtract a from each element of b c= -2 -1 0 1 2 3 Scalar - Matrix Multiplication 36 » a=3; » b=[1, 2, 3; 4, 5, 6] b= 1 2 3 4 5 6 » c = a * b % Multiply each element of b by a c= 3 6 9 12 15 18 Scalar - Matrix Division 37 » a=3; » b=[1, 2, 3; 4, 5, 6] b= 1 2 3 4 5 6 » c = b / a % Divide each element of b by a c= 0.3333 0.6667 1.0000 1.3333 1.6667 2.0000 The use of “.” – “Element” Operation 38 Given A: Divide each element of Multiply each Square each A by 2 element of A by 3 element of A MATLAB Toolboxes 39 MATLAB has a number of add-on software modules, called toolbox , that perform more specialized computations. Signal Processing Image Processing Communications System Identification Wavelet Filter Design Control System Fuzzy Logic Robust Control µ-Analysis and Synthesis LMI Control Model Predictive Control … MATLAB Demo 40 Demonstrations are invaluable since they give an indication of the MATLAB capabilities. A comprehensive set are available by typing the command >>demo in MATLAB prompt. An Interesting, MATLAB command 41 why In case you ever needed a reason Topics.. 42 What is MATLAB ?? Basic Matrix Operations Script Files and M-files Some more Operations and Functions APPLICATIONS: Plotting functions .. Image Processing Basics .. Robotics Applications .. GUI Design and Programming Plot Example PLOT Linear plot. x = [-3 -2 -1 0 1 2 3]; PLOT(X,Y) plots vector Y y1 = (x.^2) -1; versus vector X plot(x, y1,'bo-.'); PLOT(Y) plots the columns of Y versus their index PLOT(X,Y,S) with plot symbols and colors See also SEMILOGX, SEMILOGY, TITLE, XLABEL, YLABEL, AXIS, AXES, HOLD, COLORDEF, LEGEND, SUBPLOT... 43 Plot Properties Example XLABEL X-axis label. ... xlabel('x values'); XLABEL('text') adds text ylabel('y values'); beside the X-axis on the current axis. YLABEL Y-axis label. YLABEL('text') adds text beside the Y-axis on the current axis. 44 Hold Example HOLD Hold current graph. ... hold on; HOLD ON holds the current y2 = x + 2; plot and all axis properties so plot(x, y2, 'g+:'); that subsequent graphing commands add to the existing graph. HOLD OFF returns to the default mode HOLD, by itself, toggles the hold state. 45 Subplot SUBPLOT Create axes in tiled positions. SUBPLOT(m,n,p), or SUBPLOT(mnp), breaks the Figure window into an m-by-n matrix of small axes Example x = [-3 -2 -1 0 1 2 3]; y1 = (x.^2) -1; % Plot y1 on the top subplot(2,1,1); plot(x, y1,'bo-.'); xlabel('x values'); ylabel('y values'); % Plot y2 on the bottom subplot(2,1,2); y2 = x + 2; plot(x, y2, 'g+:'); 46 Figure FIGURE Create figure window. FIGURE, by itself, creates a new figure window, and returns its handle. Example x = [-3 -2 -1 0 1 2 3]; y1 = (x.^2) -1; % Plot y1 in the 1st Figure plot(x, y1,'bo-.'); xlabel('x values'); ylabel('y values'); % Plot y2 in the 2nd Figure figure y2 = x + 2; plot(x, y2, 'g+:'); 47 Surface Plot x = 0:0.1:2; y = 0:0.1:2; [xx, yy] = meshgrid(x,y); zz=sin(xx.^2+yy.^2); surf(xx,yy,zz) xlabel('X axes') ylabel('Y axes') 48 3 D Surface Plot contourf-colorbar-plot3-waterfall-contour3-mesh-surf 49 Convolution 50 The behavior of a linear, continuous-time, time-invariant system with input signal x(t) and output signal y(t) is described by the convolution integral - h(t), assumed known, the response of the system to a unit impulse input For example, x = [1 1 1 1 1]; [1 1 1 1 1] h = [0 1 2 3]; [3 2 1 0] conv(x,h) yields y = [0 1 3 6 6 6 5 3] stem(y); ylabel(„Conv'); xlabel(„sample number‟); Topics.. 51 What is MATLAB ?? Basic Matrix Operations Script Files and M-files Some more Operations and Functions APPLICATIONS: Plotting functions .. Image Processing Basics .. Robotics Applications .. GUI Design and Programming Image Processing Toolbox 52 The Image Processing Toolbox is a collection of functions that extend the capability of the MATLAB ® numeric computing environment. The toolbox supports a wide range of image processing operations, including: Geometric operations Neighborhood and block operations Linear filtering and filter design Transforms Image analysis and enhancement Binary image operations Region of interest operations MATLAB Image Types 53 Indexed images : m-by-3 color map Intensity images : [0,1] or uint8 Binary images : {0,1} RGB images : m-by-n-by-3 Indexed Images » [x,map] = imread('trees.tif'); » imshow(x,map); 54 Intensity Images » image = ind2gray(x,map); » imshow(image); 55 Binary Images » imshow(edge(image)); 56 RGB Images 57 Image Display 58 image - create and display image object imagesc - scale and display as image imshow - display image colorbar - display colorbar getimage- get image data from axes truesize - adjust display size of image zoom - zoom in and zoom out of 2D plot Image Conversion 59 Gray2ind - intensity image to index image im2bw - image to binary Im2double - image to double precision Im2uint8 - image to 8-bit unsigned integers Im2uint16 - image to 16-bit unsigned integers Ind2gray - indexed image to intensity image mat2gray - matrix to intensity image rgb2gray - RGB image to grayscale rgb2ind - RGB image to indexed image GEOMETRIC OPERATIONS 60 “imcrop” crops an image to a specified rectangle. imcrop displays the input image and waits for you to specify the crop rectangle with the mouse. IMAGE ENHANCEMENT 61 Adjust intensity >>im2 = histeq(im); imadjust >>imshow(im2) histeq Noise removal linear filtering median filtering adaptive filtering TRANSFORMS 62 Fourier Transform -fft2, fftshift, ifft2 Discrete Cosine Transform (DCT) -dct2, idct2, dctmtx, dctdemo Radon Transform -radon, iradon, phantom Topics.. 63 What is MATLAB ?? Basic Matrix Operations Script Files and M-files Some more Operations and Functions APPLICATIONS: Plotting functions .. Image Processing Basics .. Robotics Applications .. GUI Design and Programming Robotics Application 64 Lez Concorrenza - The Automation-Robotics Event, Techniche 2005 Robotics Application 65 Concept take image filter using medfilt2 take the subarray of ball region, find cluster of max area ,find its centroid take the subarray of robot region , find cluster of max area, find its centroid interpolate the ball using the ball's current and previous coordinate , give output Robotics Application 66 MATLAB Code parport=digitalio('parallel','LPT1'); addline(parport,0:7,'out'); ball_x_prev = 1; ball_y_prev = 1; while (1) % code for acquiring image filtered_image=medfilt2(bw,[3 3]); % filter the image region_ball = filtered_image[20:460,10:575]; % ball region region_bot = filtered_image[20:460,575:630]; % robot region label = bwlabel(region_ball,4); %label the clusters in the region data = regionprops(label,'basic'); % data ontains properties of clusters in the region object = find([data.Area]==max([data.Area])) % object conatains the label of the cluster with max area Robotics Application 67 ball_x = data(object).Centroid(1); %x coordinates of the ball ball_y = data(object).Centroid(2); label = bwlabel(region_bot,4); %label the clusters in the region data = regionprops(label,'basic'); % data ontains properties of clusters in the region object =find([data.Area]==max([data.Area])) % object conatains the label of the cluster with max area robot_x = data(object).Centroid(1); %x coordinates of the bot robot_y = data(object).Centroid(2); % Algorithm for movement of robot if (ball_x > ball_x_prev) % the ball is returning to the bot % Do something if (robot_y > y_proj) % Do something else Etc. Topics.. 68 What is MATLAB ?? Basic Matrix Operations Script Files and M-files Some more Operations and Functions APPLICATIONS: Plotting functions .. Image Processing Basics .. Robotics Applications .. GUI Design and Programming Graphical User Interface 69 What is GUI: A graphical user interface (GUI) is a user interface built with graphical objects such as Buttons Text fields Sliders Menus If the GUI is designed well-designed, it should be intuitively obvious to the user how its components function. Axes static text 70 Frames Checkbox Slider Edit text Radio Buttons Push Buttons Graphical User Interface 71 Guide Editor Result Figure Property Inspector GUI: Spectrum Analyzer 72 Thanks 73 Questions ??