Presentation is loading. Please wait.

Presentation is loading. Please wait.

MATLAB Second Seminar. Previous lesson Last lesson We learnt how to: Interact with MATLAB in the MATLAB command window by typing commands at the command.

Similar presentations


Presentation on theme: "MATLAB Second Seminar. Previous lesson Last lesson We learnt how to: Interact with MATLAB in the MATLAB command window by typing commands at the command."— Presentation transcript:

1 MATLAB Second Seminar

2 Previous lesson Last lesson We learnt how to: Interact with MATLAB in the MATLAB command window by typing commands at the command prompt. Define and use variables. Plot graphs It would be nice if you didn't have to manually type these commands at the command prompt whenever you want to use them.

3 Write a script that asks for a temperature (in degrees Fahrenheit) computes the equivalent temperature in degrees Celcius. The script should keep running until no number is provided to convert. use isempty Problem

4 Solution while 1 % use of an infinite loop TinF = input('Temperature in F: '); % get input if isempty(TinF) % how to get out break end TinC = 5*(TinF - 32)/9; % conversion disp(' ') disp([' ==> Temperature in C = ',num2str(TinC)]) disp(' ') end while 1 % use of an infinite loop TinF = input('Temperature in F: '); % get input if isempty(TinF) % how to get out break end TinC = 5*(TinF - 32)/9; % conversion disp(' ') disp([' ==> Temperature in C = ',num2str(TinC)]) disp(' ') end

5 Functions Functions describe subprograms –Take inputs, generate outputs –Have local variables (invisible in global workspace) Core MATLAB (Built-in) Functions – sin, abs, exp,... Can’t be displayed on screen MATLAB-supplied M-file Functions – mean, linspace, … Ca be displayed on screen User-created M-file Functions

6 Core MATLAB (Built-in) Functions Elementary built-in functions >> help elfun % a list of these functions Special Math functions >> help specfun Special functions - toolboxes Each toolbox has a list of special functions that you can use sin % Sine. exp % Exponential. abs % Absolute value. round % Round towards nearest integer. sin % Sine. exp % Exponential. abs % Absolute value. round % Round towards nearest integer. lcm % Least common multiple. cart2sph % Transform Cartesian to spherical % coordinates. lcm % Least common multiple. cart2sph % Transform Cartesian to spherical % coordinates.

7 function y = mean(x) % MEAN Average or mean value. % For vectors, MEAN(x) returns the mean value. % For matrices, MEAN(x) is a row vector % containing the mean value of each column. [m,n] = size(x); if m == 1 m = n; end y = sum(x)/m; function y = mean(x) % MEAN Average or mean value. % For vectors, MEAN(x) returns the mean value. % For matrices, MEAN(x) is a row vector % containing the mean value of each column. [m,n] = size(x); if m == 1 m = n; end y = sum(x)/m; Structure of a Function M-file Keyword: functionFunction Name (same as file name.m) Output Argument(s)Input Argument(s) Online Help MATLAB Code »output_value = mean(input_value) Command Line Syntax

8 Multiple Input & Output Arguments function r = ourrank(X,tol) % OURRANK Rank of a matrix s = svd(X); if (nargin == 1) tol = max(size(X))*s(1)*eps; end r = sum(s > tol); function r = ourrank(X,tol) % OURRANK Rank of a matrix s = svd(X); if (nargin == 1) tol = max(size(X))*s(1)*eps; end r = sum(s > tol); function [mean,stdev] = ourstat(x) % OURSTAT Mean & std. deviation [m,n] = size(x); if m == 1 m = n; end mean = sum(x)/m; stdev = sqrt(sum(x.^2)/m – mean.^2); function [mean,stdev] = ourstat(x) % OURSTAT Mean & std. deviation [m,n] = size(x); if m == 1 m = n; end mean = sum(x)/m; stdev = sqrt(sum(x.^2)/m – mean.^2); Multiple Input Arguments (, ) Multiple Output Arguments [, ] » RANK = ourrank(rand(5),0.1); » [MEAN,STDEV] = ourstat(1:99);

9 nargin, nargout, nargchk nargin – number of input arguments - Many of Matlab functions can be run with different number of input variables. nargout – number of output arguments - efficiency nargchk – check if number of input arguments is between some ‘low’ and ‘high’ values

10 Workspaces in MATLAB MATLAB (or Base) Workspace: – For command line and script file variables. Function Workspaces: – Each function has its own workspace for local variables. – Name of Input/output variables can be either equal or different then the variable name in the calling workspace. – Communicate to Function Workspace via inputs & outputs. Global Workspace: Global variables can be shared by multiple workspaces. (Must be initialized in all relevant workspaces.) Initialize global variables in all relevant workspaces: »global variable_name Initialize global variables in the “source” workspace before referring to them from other workspaces.

11 Tips for using Global Variables DON’T USE THEM If you absolutely must use them: – Avoid name conflicts >>whos global %shows the contents of the global workspace >>clear global %erases the variable from both local and global workspaces. >>isglobal()

12 MATLAB Calling Priority High variable built-in function subfunction private function MEX-file P-file M-file Low » cos='This string.'; » cos(8) ans = r » clear cos » cos(8) ans = -0.1455 » cos='This string.'; » cos(8) ans = r » clear cos » cos(8) ans = -0.1455

13 Visual Debugging Set Breakpoint Clear Breaks Step In Single Step Continue Quit Debugging Select Workspace Set Auto- Breakpoints

14 Example: Visual Debugging (2) Editor/Debugger opens the relevant file and identifies the line where the error occurred. Current Location Current Workspace (Function)

15 Example: Visual Debugging (3) Error message Access to Function’s Workspace Debug Mode

16 Some Useful MATLAB commands whatList all m-files in current directory dirList all files in current directory lsSame as dir type testDisplay test.m in command window delete testDelete test.m cd a:Change directory to a: chdir a:Same as cd pwdShow current directory which testDisplay current directory path to test.m whyIn case you ever needed a reason

17 Write a function that asks for a temperature (in degrees Fahrenheit) computes the equivalent temperature in degrees Celcius. The function should give an error massage in case no number is provided to convert. use nargin. Problem

18 Solution function TinC=temp2(TinF) TinF = input('Temperature in F: '); % get input if nargin==0 % if there is no input disp('no temparture was entered'); TinC=nan; else TinC = 5*(TinF - 32)/9; % conversion disp(' ') disp([' ==> Temperature in C = ',num2str(TinC)]) disp(' ') end function TinC=temp2(TinF) TinF = input('Temperature in F: '); % get input if nargin==0 % if there is no input disp('no temparture was entered'); TinC=nan; else TinC = 5*(TinF - 32)/9; % conversion disp(' ') disp([' ==> Temperature in C = ',num2str(TinC)]) disp(' ') end

19 MATLAB Input To read files in if the file is an ascii table, use “load” if the file is ascii but not a table, file I/O needs “fopen” and “fclose” Reading in data from file using fopen depends on type of data (binary or text) Default data type is “binary”

20 What Is GUIDE? Graphical User Interface Design Environment provides a set of tools for creating graphical user interfaces (GUIs). GUIDE automatically generates an M-file that controls how the GUI operates. Starting GUIDE: >> guide OR: Push buttons Static text Pop-up menu axes

21 GUIDE Tools - The Layout Editor In the Quick Start dialog, select the Blank GUI (Default) template Display names of components: File preferences Show names in component palette Lay out your GUI by dragging components (panels, push buttons, pop-up menus, or axes) from the component palette, into the layout area Drag to resize Component panel Layout area

22 Using the Property Inspector Labeling the Buttons Select Property Inspector from the View menu. Select button by clicking it. Fill the name in the String field. Activate GUI Property Inspector

23 Programming a GUI Callbacks are functions that execute in response to some action by the user. A typical action is clicking a push button. You program the GUI by coding one or more callbacks for each of its components. A GUI's callbacks are found in an M-file that GUIDE generates automatically. Callback template for a push button:

24 Handles structure Save the objects handles: handles.objectname Save global data – can be used outside the function. Example: popup menu: Value – user choice of the popup menu


Download ppt "MATLAB Second Seminar. Previous lesson Last lesson We learnt how to: Interact with MATLAB in the MATLAB command window by typing commands at the command."

Similar presentations


Ads by Google