Release Numbers MATLAB is updated regularly The Mathworks packages their software in groups, called releases, New releases are issued twice a year in the spring and in the fall Release 2013a includes – MATLAB 8.1 – A number of specialized “toolboxes”
MATLAB has two different methods for executing commands: interactive mode and batch mode. In interactive mode, commands are typed (or cut and pasted) into the command window. In batch mode, a series of commands is saved in a text file with a.m extension. The batch commands in a file are then executed by typing the name of the file at the MATLAB command prompt. What Is MATLAB?
MATLAB is an interpreted language. Commands are executed line by line. It supports two basic types: characters like 'a' (16 bits) and doubles like 8.25 (64 bits). Most of the time MATLAB works with arrays or matrices of real numbers or characters. Other types are also supported: complex, symbolic (if installed), 16-bit and 8-bit integers, etc... The MATLAB Language
Problem Solving A standardized approach to problem solving commonly found in all science disciplines. 1.first you state the problem, 2.then describe the input and output. 3. Develop a plan for solving the problem, called an algorithm. 4.Then you actually solve the problem, in our case using MATLAB, and 5. finally you test your solution for reasonableness. If you use a consistent problem solving strategy you increase the chance that your result is correct
MATLAB
MATLAB uses a standard windows menu bar To exit MATLAB use the close icon
Command Window Enter commands at the prompt MATLAB Windows Command History Window Records all commands issued in the command window – including mistakes Current Folder Window Lists files stored in the current directory Workspace Window
The MATLAB Desktop Current Folder Window Command Window Workspace Window Command History Window
Let’s look at the windows one at a time
At the prompt (>>), type in a MATLAB command. Press the ENTER key. MATLAB displays the result in the command window, followed by a prompt. Repeat the process. The Command Window
To start a command, make sure cursor is next to the prompt. MATLAB won’t respond until you press ENTER. It then executes only the last command. Commands before the last one may still be visible, but MATLAB doesn’t execute them. Notes on the Command Window
You can type several commands in the same line by putting a comma between commands. (makes the program harder to read though, so it is not recommended). If a command is too long to fit on one line, you can continue to the next line by typing ellipsis (3 periods, i.e., … ) and then pressing ENTER. Notes on the Command Window
When cursor is in the bottom (current) command line: key moves the cursor one character to the left. key moves the cursor one character to the right. key recalls the preceding command key recalls a previous command if it follows. Navigating the Command Window
Command Window Similar to a scratch pad Once you hit enter, you can’t edit any commands You can retype them or use the arrow keys to retrieve commands and edit them before hitting enter again Command Window
The PAGE-UP key moves up to previous commands in a window-size at a time. The PAGE-DOWN key moves down to previous commands in a window-size at a time. The BACKSPACE (Delete on Mac) key deletes one character to the left of the cursor. The DELETE (fn-Delete on Mac) key deletes one character to the right of the cursor. Navigating the Command Window
To quickly execute a previous command but with small changes: Recall the command with the up and down arrow keys. Use the left and right arrow keys to move to characters to be altered. Use BACKSPACE (Mac: Delete) or DELETE (Mac: fn-Delete) to remove old characters, then type new characters. Press ENTER to execute the modified command. T I P
Semicolon (;) When typed at end of a command, it suppresses the output. (only the prompt is displayed at the next line) Useful for preventing display of large outputs Used much more in scripts (see Section 1.8 of text book) Percent sign (%) When typed at beginning of a line, MATLAB treats the line as a comment and doesn’t execute the line. Also used much more in scripts. Command Syntax
Clears the command window display. The up and down arrows still bring back the previous commands. The clc Command
Shows the previous commands, including the ones from previous MATLAB sessions. Double-clicking on a command puts it in the command window and executes it. You can drag a command to the command window, make changes in it, then execute it. The Command History Window
Command History Records the commands you issue in the command window When you exit the command window, or when you issue the clc command, the command window is cleared But the command history remains Command History
You can transfer commands from the command history to the command window – Double click on a command It executes immediately – Click and drag into the command window You can edit the command before executing
Workspace Window
NOTE! When you define variables in the command window, they are listed in the workspace window Document Window: If you double click on any variable in the workspace window MATLAB launches a document window containing the array editor You can edit variables in the array editor Figure Window: When Figures are created a new window opens It’s extremely easy to create graphs in MATLAB
The Figure Window The Figure Window opens automatically after any command that draws a graph. Figure Window
Scalar Vector 2-D Matrix
Current Directory/Folder The current folder window is a list of files When you try to load information from a file or try to save information – MATLAB uses the current folder
The Document Window displays the variable editor New Variable Icon
Note: The semicolon suppresses the output from each command First create a vector of x values – then a corresponding vector of y values
Matlab makes it easy to modify graphs by adding Titles Axis labels Legends Other types of annotations
MATLAB
Semicolon (;) When typed at end of a command, it suppresses the output. (only the prompt is displayed at the next line) Useful for preventing display of large outputs Used much more in scripts (see Section 1.8 of text book) Percent sign (%) When typed at beginning of a line, MATLAB treats the line as a comment and doesn’t execute the line. Also used much more in scripts. Command Syntax
Clears the command window display. The up and down arrows still bring back the previous commands. The clc Command
Note: The semicolon suppresses the output from each command First create a vector of x values – then a corresponding vector of y values
Matlab makes it easy to modify graphs by adding Titles Axis labels Legends Other types of annotations
Editing Window This window allows you to type and save a series of commands without executing them There are several ways to open an editing window – From the file menu – With the new file icon
Open an editing window from the file menu or with the new file icon
New file icon
Use the editor/debugger window to write and debug MATLAB scripts. Open with the Edit command. Editor/Debugger Window The Editor Window
Get the help window from the Help menu in any MATLAB window. (may vary according to version) The Help Window
In this lesson we will only discuss arithmetic with scalars (single numbers). We can do arithmetic directly on numbers (like a calculator). Or, we can store numbers in variables (containers). Arithmetic Operations
Symbols for arithmetic operations are: Note: Left division is rarely used with scalars. OperationSymbolExample Addition Subtraction–5 – 3 Multiplication*5 * 3 Right division/5 / 3 Left division\5 \ 3 = 3 / 5 Exponentiation^5 ^ 3 (means 5 to the power of 3 = 125) Arithmetic Operators
Order in which MATLAB does arithmetic: PrecedenceMathematical Operation First Parentheses. For nested parentheses, the innermost are executed first SecondExponentiation ThirdMultiplication, division (equal precedence) FourthAddition and subtraction Arithmetic Operations Precedence Order
The MATLAB precedence order is The same as most calculators. The same as doing arithmetic by hand. For multiple operations of same precedence, MATLAB goes left to right. You can change order by using parentheses. Arithmetic Operations Precedence Rules
Type in a mathematical expression. Press the Enter key. MATLAB displays the answer in the command window as ans = followed by the result. Example: >> 2 * x - 2 ans = 6 Your display may appear on more than one line and have blank lines between the text. Using MATLAB as a Calculator
You can control the display of numbers with the format command. Once a command is entered, the format stays the same until another format command is issued. The default format is fixed point with four digits to the right of the decimal point. fixed-point means decimal point always between one’s-digit and one-tenth’s digit. The format command only affects the display of numbers. MATLAB always computes and saves numbers in full precision. Formatting the Display
StyleResultExample short (default)Short fixed decimal format, with 4 digits after the decimal point longLong fixed decimal format, with 15 digits after the decimal point for double values, and 7 digits after the decimal point for single values shortGThe more compact of short fixed decimal or scientific notation. If you are displaying a matrix with a wide range of values, consider using shortG bankCurrency format, with 2 digits after the decimal point. 3.14
CommandDescriptionExample format short Fixed-point with 4 decimal digits for: ≤ number ≤ 1000 Otherwise display format short e >> 290/7 ans = format long Fixed-point with 15 decimal digits for: ≤ number ≤ 1000 Otherwise display format long e >> 290/7 ans = format short e Scientific notation with 4 decimal digits >> 290/7 ans = e+001 format long e Scientific notation with 15 decimal digits >> 290/7 ans = e+001 format compact Eliminates empty lines to allow more lines with information displayed on the screen format loose Adds empty lines (opposite of compact)
MATLAB expressions can include functions. You can think of a function as a black box that, in general, takes inputs, does some computations with them, and produces outputs. function InputsOutputs function y tan(y/x) x MATLAB Built-In Functions
A function Has a name. Can have zero or more arguments (inputs). Can produce zero or more outputs. y = sqrt(x) nameargumentoutput MATLAB Built-In Functions
A function’s arguments can be numbers, or variables (explained in the next section), or expressions involving numbers, variables, or functions. sqrt(64) argument is a number sqrt(a) argument is the variable a atan( y/sqrt(3^2+y^2) ) argument is an expression that has a number (3), a variable (y), and a function (sqrt) MATLAB Built-In Functions
sqrt(x) – square root nthroot(x,n) – nth real root exp(x) – e to the power of x abs(x) – absolute value log(x) – natural log (base e) log10(x) – log base 10 factorial(x) – x! See Table 1-3 of text book for details. Elementary Math Functions
sin(x) – sine ( x in radians) sind(x) – sine ( x in degrees) cos(x) – cosine ( x in radians) cosd(x) – cosine ( x in degrees) tan(x) – tangent ( x in radians) tand(x) – tangent ( x in degrees) cot(x) – cotangent ( x in radians) cotd(x)- cotangent ( x in degrees) See Table 1-4 for of text book for details. Elementary Trig Functions
round(x) – round to nearest integer fix(x) – round toward zero (transforms a double into an integer) ceil(x) – round toward infinity floor(x) – round toward minus infinity rem(x,y) – remainder after x is divided by y (also called modulus) sign(x) – returns 1 if x is positive, -1 if x is negative, zero if x is zero See Table 1-5 for of text book for details. Rounding Functions
round(A) – Positive elements with a fractional part of 0.5 round up to the nearest positive integer. Negative elements with a fractional part of -0.5 round down to the nearest negative integer. a = -1.9 round(a) a= , a=-0.2 round(a) a=0, a=3.4 round(a) a= , a=5.6 round(a) a= fix(A) – rounds the elements of A toward zero, resulting in an array of integers a = -1.9 fix(a) a= , a=-0.2 fix(a) a=0, a=3.4 fix(a) a= , a=5.6 fix(a) a= ceil(A) – rounds the elements of A to the nearest integers greater than or equal to A. a = -1.9 ceil(a) ans = , a = ceil(a) ans =0, a = ceil(a) ans = floor(A) – rounds the elements of A to the nearest integers less than or equal to A A = -1.9 floor(A) ans = , A = -0.2 floor(A) ans = , A = 3.4 floor(A) ans = rem(X,Y) – Remainder after division of X by Y. X = 23; Y = 5; R = rem(X,Y) R=3, X = 1:5; Y = 3; R = rem(X,Y) R= X = [1 2 3;4 5 6;7 8 9]; Y = [9 8 7;6 5 4;3 2 1]; R = rem(X,Y) R = Functions Examples
Variables MATLAB allows you to assign a value to a variable A=5 Should be read as A is assigned a value of 5 Use the variables in subsequent calculations
A variable is a name that is assigned a numerical value Once assigned, can use variable in expressions, functions, and MATLAB statements and commands. Can read the variable (get its value). Can write to the variable (set its value). Defining Scalar Variables
= (equals sign) is MATLAB’s assignment operator. It evaluates the expression on its right side and stores the resulting value in the variable on its left side Create the variable called a and store the value 3 in it >> a = 3 MATLAB acknowledges that it has created a and set it to 3 a = 3 Assigning Values to Variables
Example: >> a = 3 a = 3 >> b = 10 * a + 5 b = 35 Create a variable and store a number in it Create a variable and store the value of an expression made up of a variable, numbers, and addition and multiplication Assignment Operator
Think of = as meaning “assign to” or “store in” but not meaning “equals”! Why? x = x + 6 has no meaning in math because it implies that 0 = 6. x = x + 6 is perfectly fine in MATLAB because it means “take whatever is in x (the x on the right side), add 6 to that and store the result back into x (the x on the left side which really is the same container (variable) named x)”. How Assignment Works
Example: >> x = 3; >> x = x + 6 x = 9 >> x = 2 * x x = 18 ; at end prevents MATLAB from displaying value of x. takes what’s in x (3), adds 6 to it to get 9, then stores 9 back into x. now x’s value is 9 takes what’s in x (9), multiplies it by 2 to get 18, then stores 18 back into x now x’s value is 18 Assignment Operator Examples
A variable must have a value before you use it in an expression. >> x = 3; >> x + 2 ans = 5 >> x + y % assume y is undefined ??? Undefined function or variable 'y' comment Assignment Operator Warning
>> x = 3; >> y = 10 * x; >> z = y ^ 2; >> y y = 30 >> z z = 900 The Value of a Variable To find out the value of a variable, just type it and press ENTER.
You can do multiple assignments on one line by separating them with a comma or semicolon. If semicolon, no display for that assignment. >> a=12, B=4; C=(a-B)+40-a/B*10 a = 12 C = 18 Multiple Assignments
To change the value of a variable, just assign it the new value. >> ABB=72; >> ABB=9; >> ABB ABB = 9 Changing the Value of a Variable Only the last value is kept! One value at a time in a scalar variable. The original value of 72 is gone!
You must define a variable (give it a value) before you can use it in an argument of a function. >> sqrt( x ) % assume x undefined ??? Undefined function or variable 'x' >> x = 144; >> sqrt( x ) x = 12 Variables and Functions
Naming Variables All names must start with a letter They may contain letters, numbers and the underscore ( _ ) Names are case sensitive There are certain keywords you can’t use
Must begin with a letter. Can be up to 63 characters long. Can contain letters, digits, and underscores (_). Can’t contain punctuation, e.g., period, comma, semicolon. Avoid using the name of a built-in function as the name of a variable, e.g., don’t call a variable exp or sqrt. Variable Name Rules
MATLAB is case-sensitive, and does not consider an upper-case letter in a variable name to be the same as its lower-case counterpart, MTV, MTv, mTV, and mtv are four different variable names! Variable Name Rules
A variable name cannot contain a space. Two common alternatives: Use an underscore in place of a space, ex: speed_of_light. Capitalize the first letter of every word, ex: SpeedOfLight. Variable Name Rules
A keyword or reserved word is a word that has special meaning to MATLAB. There are 20 keywords: break, case, catch, classdef, continue, else, elseif, end, for, function, global, if, otherwise, parfor, persistent, return, spmd, switch, try, while They appear in blue when typed in the editor/debugger window (type iskeyword to see the list). They can’t be used as variable names. Variable Name Rules MATLAB Keywords
Use the iskeyword function for a list of keywords iskeyword ans = 'break' 'case' 'catch' 'classdef' 'continue' 'else' 'elseif' 'end‘ 'for‘ 'function' 'global' 'if' 'otherwise' 'parfor' 'persistent' 'return‘ ‘spmd’ 'switch' 'try' 'while' Keywords are not acceptable variable names
You can reassign function names MATLAB will let you use built-in function names as variables – but it’s a really bad idea sin = 3 changes sin from a function to a variable name clear sin resets sin back to a function
Which of these names are allowed in MATLAB? test Test if my-book my_book Thisisoneverylongnamebutisitstillallowed? 1stgroup group_one zzaAbc z34wAwy?12# sin log
Which of these names are allowed in MATLAB? test Test if my-book my_book Thisisoneverylongnamebutisitstillallowed? 1stgroup group_one zzaAbc z34wAwy?12# sin log x x x x xx bad idea