0% found this document useful (0 votes)
52 views46 pages

MATLAB Review

MATLAB is an interactive environment for numerical computations, data visualization and analysis. It allows matrix manipulations, plotting of functions and data, implementation of algorithms, creation of user interfaces, and interfacing with programs in other languages. Key features include a high-level programming language, tools for algorithm development, visualization, and access to toolboxes for various domains.

Uploaded by

Zachary
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
52 views46 pages

MATLAB Review

MATLAB is an interactive environment for numerical computations, data visualization and analysis. It allows matrix manipulations, plotting of functions and data, implementation of algorithms, creation of user interfaces, and interfacing with programs in other languages. Key features include a high-level programming language, tools for algorithm development, visualization, and access to toolboxes for various domains.

Uploaded by

Zachary
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 46

What is MATLAB?

• MATrix LABoratory
• Developed by The Mathworks, Inc (http://www.mathworks.com)
• Interactive, integrated, environment
– for numerical computations
– for symbolic computations
– for scientific visualizations
• It is a high-level programming language
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 .
Start menu Matlab MATLAB

“>>” – ‫שורת הפקודה‬


>> date
Getting Help
>> help date

>> helpwin date


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

>> lookfor date % search for keywords that best describe the function
>> Ctrl+C % stop Matlab from running
>> clc % clear screen
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;
Creating Variables
• Matlab as a calculator:
• >>2+5
• >>7*10+8
• >>5^2
• ‘ans’ - "answer", used in MATLAB as the default variable.
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’
Listing & Clearing Variables
>> a=10
>> b = 20
>> the_average = (a + b ) / 2
>> whos

>> clear, clear all %clear variables from memory


Creating vectors

Coulmn separator:
Row separator: Semicolon (;)
space/coma (,)

Creating sequences:
• From : jump: till
• linespec(X1, X2, N)
generates N points between
X1 and X2.
Creating Matrices

• Matrices must be rectangular.


• Creating random matrices:
2-by-4 random matrix
(2 rows and 4 columns).
Creating Matrices
• You can combine existing vectors as matrix elements:

• You can combine existing matrices as matrix elements:


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.
Linear Algebra Operations
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
Vector Multiplication

Type the following:


>>a=[2 3]
>>b=[3 2]
>>a*b

>>a.*b

>>a.*b’

>>a*b’
String Arrays

• Created using single quote delimiter (')

• Indexing is the same as for numeric arrays


String Array Concatenation
Working with String Arrays
Example: Solving Equations

• Solve this set of simultaneous equations: Ax=B, x=?


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:
Run
• >> edit
Add path

• >> addpath C:\EMEM899\Somedirectory


• Set path
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
A Simple Script
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

% 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)
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
coment
%}
Running Scripts (2)
• Find and Replace – ctrl+F

• Key words

• Wrong use of key words

• Indenting: Ctrl+I
Flow Control Constructs

• Logic Control:
– IF / ELSEIF / ELSE
– SWITCH / CASE / OTHERWISE
• Iterative Loops:
– FOR
– WHILE
The if, elseif and else statements
• Works on Conditional statements
• Logic condition is ‘true’ if its different then 0.

if I == J if I == J
A(I,J) = 2; A(I,J) = 2;
else if abs(I-J) == 1 elseif abs(I-J) == 1
A(I,J) = -1; A(I,J) = -1;
else
else
A(I,J) = 0;
A(I,J) = 0;
end
end %else if
end %if

• ELSEIF does not need a matching END, while ELSE IF


does.
Boolean Operators & Indexing
Switch, Case, and Otherwise

• More efficient than elseif statements


• Only the first matching case is executed
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
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
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
The for loop

• Similar to other programming languages


• Repeats loop a set number of times (based on index)
• Can be nested
• Each loop is closed with end.

N=10;
for I = 1:2:N
for J = 1:N
A(I,J) = 1/(I+J-1);
end
end
The while loop

• Similar to other programming languages


• Repeats loop until logical condition returns FALSE.
• Can be nested.
• Stopping infinity loop:
Ctrl+C I=1; N=10;
while I<=N
Ctrl+break J=1;
while J<=N
A(I,J)=1/(I+J-1);
J=J+1;
end
I=I+1;
end
Array Operations
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’)
Multiple Plots
• 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 2.5
x 10
4
Comparing Exponential Functions

• xlabel('x-axis'); ylabel('y-axis'); 1
2
3
• title('Comparing Exponential Functions'); 2 4

• legend ('1', '2', '3', '4') 1.5

y-axis
1

0.5

0
-10 -5 0 5 10
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)
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.
Special Graph Annotations (TeX)
Plot Editor Toolbar
Exercise

Create the following: Merav's graph


2
sin(x)
log(x)
1.5

0.5
y

-0.5

-1
1 1.5 2 2.5 3 3.5 4 4.5 5

• x = (1, 1.05, 1.1, 1.15… 5) x

• Y=sin(x)
• Z=log(x)
• Put your name in the title
• Hint: check the doc on function “LineSpec”.
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)');
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

3D graph
sin(x) log(x)
1 1.8

0.8 1.6
2
0.6
1.4
0.4 1.5
1.2
0.2
1
1
z
y=sin(x)

0
z

0.8 0.5
-0.2
0.6
-0.4 0
0.4 1
-0.6
0.5 5
0.2 0 4
-0.8
3
-0.5 2
-1 0
1 2 3 4 5 1 2 3 4 5 y -1 1
x
x x
Solution

• 3-D graph: • Subplots


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

You might also like