Presentation is loading. Please wait.

Presentation is loading. Please wait.

What is MATLAB ? MATrix LABoratory Developed by The Mathworks, Inc (http://www.mathworks.com(The Mathworks, Inc Interactive, integrated, environment –for.

Similar presentations


Presentation on theme: "What is MATLAB ? MATrix LABoratory Developed by The Mathworks, Inc (http://www.mathworks.com(The Mathworks, Inc Interactive, integrated, environment –for."— Presentation transcript:

1

2 What is MATLAB ? MATrix LABoratory Developed by The Mathworks, Inc (http://www.mathworks.com(The Mathworks, Inc Interactive, integrated, environment –for numerical computations –for symbolic computations –for scientific visualizations It is a high-level programming language

3 Characteristics of MATLAB Programming language based (principally) on matrices. –Slow - an interpreted language, i.e. not pre-compiled. Avoid for loops; instead use vector form whenever possible. –Automatic memory management, i.e., you don't have to declare arrays in advance. –Intuitive, easy to use. –Shorter program development time than traditional programming languages such as Fortran and C. –Can be converted into C code via MATLAB compiler for better efficiency. Many application-specific toolboxes available.

4 Start menu Matlab MATLAB “>>” – שורת הפקודה << date

5 Getting Help << help date >> helpwin date helpwin gives you the same information as help, but in a different window.

6 Getting Help << doc date << lookfor date % search for keywords that best describe the function >> Ctrl+C % stop Matlab from running >> clc % clear screen

7 Special characters >> % default command prompt % % comment - MATLAB simply ignores anything to the right of this sign (till the end of the line). >> % my comment ; % semicolon at the end of the line will prevent MATLAB from echoing the information you type on the screen. >> a=20 >> B=20;

8 Creating Variables Matlab as a calculator: >>2+5 >>7*10+8 >>5^2 ‘ans’ - "answer", used in MATLAB as the default variable.

9 Defining Your Own Variables When Matlab comes across a new variable name - it automatically creates it. Begins with a LETTER, e.g., A2z. Can be a mix of letters, digits, and underscores (e.g., vector_A, but not vector-A) Not longer than 31 characters. No spaces Different mixes of capital and small letters = different variables. For example: "A_VaRIAbLe", "a_variable", "A_VARIABLE", and "A_variablE >> String=‘this is a string’

10 Listing & Clearing Variables << whos << clear, clear all %clear variables from memory << a=10 << b = 20 << the_average = (a + b ) / 2

11 Creating vectors Row separator: space/coma (,) Creating sequences: From : jump: till linespec(X1, X2, N) generates N points between X1 and X2. Coulmn separator: Semicolon (;)

12 Creating Matrices Matrices must be rectangular. Creating random matrices: 2-by-4 random matrix (2 rows and 4 columns).

13 Creating Matrices You can combine existing vectors as matrix elements: You can combine existing matrices as matrix elements:

14 Indexing Into a Matrix >> B=A(3,1); >> A(:,end)=[1;7;3;8;4]; The row number is first, followed by the column number.

15 Linear Algebra Operations

16 Matrix Multiplication Inner dimensions must be equal Dimension of resulting matrix = outermost dimensions of multiplied matrices Resulting elements = dot product of the rows of the 1st matrix with the columns of the 2nd matrix

17 Type the following: >>a=[2 3] >>b=[3 2] >>a*b >>a.*b >>a.*b’ >>a*b’ Vector Multiplication

18 String Arrays Created using single quote delimiter (') Indexing is the same as for numeric arrays

19 String Array Concatenation

20 Working with String Arrays

21 Example: Solving Equations Solve this set of simultaneous equations: Ax=B, x=?

22 Creating Scripts with MATLAB Editor/Debugger Automatically saves files as ASCII text files for you. Scripts in MATLAB has the ".m" suffix. They are also called "M-files". Open Matlab Editor: File New M-file OR: >> edit Run

23 Add path >> addpath C:\EMEM899\Somedirectory Set path

24 Script M-files Standard ASCII text files Contain a series of MATLAB expressions A script does not define a new workspace % Comments start with "%" character pause % Suspend execution - hit any key to continue. keyboard % Pause & return control to command line. % Type "return" to continue. break % Terminate execution of current loop/file. return % Exit current function % Return to invoking function/command line. Continue % go to next iteration Input % Prompt for user input % Comments start with "%" character pause % Suspend execution - hit any key to continue. keyboard % Pause & return control to command line. % Type "return" to continue. break % Terminate execution of current loop/file. return % Exit current function % Return to invoking function/command line. Continue % go to next iteration Input % Prompt for user input

25 A Simple Script % a simple MATLAB m-file to calculate the % square root of an input numbers. my_num=input( ' insert a number ' ); % now calculate the square root of the number and print it out: square_root = sqrt(my_num) Write a program which receives a number from the user, calculates it’s square root (use ‘sqrt’ command) and displays the result. save the script as "square_root_script.m" in your own folder

26 Running Scripts >> square_root_script The header - comments you place at the beginning of your scripts will be returned to users when they get help for your script. >> help square_root_script Note: The variables defined in the script remain in the workspace even after the script finishes running. Creating comments: ctrl+r, or right click on the mouse, or %{ coment %}

27 Find and Replace – ctrl+F Key words Wrong use of key words Indenting: Ctrl+I Running Scripts (2)

28 Flow Control Constructs Logic Control: – IF / ELSEIF / ELSE – SWITCH / CASE / OTHERWISE Iterative Loops: – FOR – WHILE

29 The if, elseif and else statements if I == J A(I,J) = 2; elseif abs(I-J) == 1 A(I,J) = -1; else A(I,J) = 0; end if I == J A(I,J) = 2; elseif abs(I-J) == 1 A(I,J) = -1; else A(I,J) = 0; end Works on Conditional statements Logic condition is ‘true’ if its different then 0. ELSEIF does not need a matching END, while ELSE IF does. if I == J A(I,J) = 2; else if abs(I-J) == 1 A(I,J) = -1; else A(I,J) = 0; end %else if end %if if I == J A(I,J) = 2; else if abs(I-J) == 1 A(I,J) = -1; else A(I,J) = 0; end %else if end %if

30 Boolean Operators & Indexing

31 Switch, Case, and Otherwise switch input_num case -1 input_str = 'minus one'; case 0 input_str = 'zero'; case 1 input_str = 'plus one'; case {-10,10} input_str = '+/- ten'; otherwise input_str = 'other value'; end switch input_num case -1 input_str = 'minus one'; case 0 input_str = 'zero'; case 1 input_str = 'plus one'; case {-10,10} input_str = '+/- ten'; otherwise input_str = 'other value'; end More efficient than elseif statements Only the first matching case is executed

32 Problem Build a program which receives a variable x and its units (mm, cm, inch, meter) and calculates Y- it’s value in centimeters units. Use switch case. 1 Inch = 2.54 cm Write a comment for error case. Save the file under units.m

33 Solution x = 3.0; units = 'mm'; switch units case {'in','inch'} y = 2.54*x % converts to centimeters case {'m','meter'} y = x*100 % converts to centimeters case { 'millimeter','mm'} y = x/10; disp ([num2str(x) ' in ' units ' converted to cm is :' num2str(y)]) case {'cm','centimeter'} y = x otherwise disp (['unknown units:' units]) y = nan; end x = 3.0; units = 'mm'; switch units case {'in','inch'} y = 2.54*x % converts to centimeters case {'m','meter'} y = x*100 % converts to centimeters case { 'millimeter','mm'} y = x/10; disp ([num2str(x) ' in ' units ' converted to cm is :' num2str(y)]) case {'cm','centimeter'} y = x otherwise disp (['unknown units:' units]) y = nan; end

34 Similar to other programming languages Repeats loop a set number of times (based on index) Can be nested Each loop is closed with end. The for loop N=10; for I = 1:2:N for J = 1:N A(I,J) = 1/(I+J-1); end N=10; for I = 1:2:N for J = 1:N A(I,J) = 1/(I+J-1); end

35 The while loop I=1; N=10; while I<=N J=1; while J<=N A(I,J)=1/(I+J-1); J=J+1; end I=I+1; end I=1; N=10; while I<=N J=1; while J<=N A(I,J)=1/(I+J-1); J=J+1; end I=I+1; end Similar to other programming languages Repeats loop until logical condition returns FALSE. Can be nested. Stopping infinity loop: Ctrl+C Ctrl+break

36 Array Operations

37 Line Plots in Two Dimensions Plot (x,y) makes a two-dimensional line plot for each point in X and its corresponding point in Y: (X(1),Y(1)), (X(2),Y(2)), (X(3),Y(3)), etc., and then connect all these points together with line. Example: >> x=1:1:5; >>Y=[2 7 0 -8 6]; >> plot (x,y); >> xlabel (‘label for x-axis’) >> ylabel (‘label for y-axis’) >> title (‘title’)

38 Check the following: x_points = [-10 :.05 : 10]; plot(x_points, exp(x_points)); % plot in Blue (default) grid on hold on plot(x_points, exp(.95.* x_points), 'm'); % plot in Magenta plot(x_points, exp(.85.* x_points), 'g'); % plot in Green plot(x_points, exp(.75.* x_points), 'p'); % plot a star hold off xlabel('x-axis'); ylabel('y-axis'); title('Comparing Exponential Functions'); legend ('1', '2', '3', '4') Multiple Plots

39 Subplots multiple plots in the same window, each with their own axes. Subplot (M,N,P) M – rows N - columns P – number of subplot in the figure Subplot (2,2,1)

40 More about figures Figure % Open a new figure without closing old figures Figure (i) % Open the i-th figure Close all % close all open figures axis ([xmin xmax ymin ymax]) % sets scaling for the x- and y-axes on the current plot.

41 Special Graph Annotations (TeX)

42 Plot Editor Toolbar

43 Exercise x = (1, 1.05, 1.1, 1.15… 5) Y=sin(x) Z=log(x) Put your name in the title Hint: check the doc on function “LineSpec”. Create the following:

44 Solution x=1:0.05:5; y=sin(x); z=log(x); hold on plot (x,y,'-.r*') plot (x,z,'-.go') hold off title ('Merav''s graph'); xlabel ('x') ylabel ('y') legend ('sin(x)', 'log(x)');

45 More exercise Make a 3 three-dimensional graph of (x,y,z) – use Matlab help. Make two separate 2-D graphs, with separate axis, in the same window: y vs. x, and z vs. x. Use the same x,y,z as defined in the previous exercise

46 Solution 3-D graph: >> plot3(x,y,z) >> grid >> xlabel ('x') >> ylabel('y') >> zlabel('z') >> title ('3D graph') Subplots >> subplot (1,2,1); >> plot(x,y); >> title ('sin(x)'); >> xlabel('x'); >> ylabel('y=sin(x)'); >> grid; >> subplot (1,2,2); >> plot(x,z); >> xlabel('x'); >> title ('log(x)'); >> grid; >> ylabel ('z');


Download ppt "What is MATLAB ? MATrix LABoratory Developed by The Mathworks, Inc (http://www.mathworks.com(The Mathworks, Inc Interactive, integrated, environment –for."

Similar presentations


Ads by Google