Matlab_Class_2

advertisement
Introduction To Matlab
Class 2
Instructors: Hristiyan (Chris) Kourtev
and Xiaotao Su, PhD
Double click the matlab icon
When prompted click “Skip”
Optional Presentation Title
Character Vectors And Numeric Vectors
• 'hello world' is referred to as a character string or a
character vector
• [35, 26.3, 11, 4] is a numeric vector
• These are the two main data types in matlab
h
e
l
l
o
w
o
r
(1) (2) (3) (4) (5) (6) (7) (8) (9)
Unit Name
35
26.3
11
4
(1)
(2)
(3)
(4)
l
d
(10) (11)
Optional Presentation Title
Character Vectors (aka Strings) And Numeric
Vectors
• How to convert between these two data types? What if I
have a string, '39.5' and I want to add to it?
• num2str & str2num
• str2num('39.5') + 5
• ['hello w', 'orld']
• a = [3, 9];
• b = [12.6, 8];
• [a, b]
• c = ['1', num2str(39.5)]
• str2num(c) + 200
Unit Name
Optional Presentation Title
Formatting strings with sprintf
• result = sprintf(format_string, input1, input2 …)
• Format string: [flags][width][.precision][length] specifier
• Common Specifiers:
%c character
%s string
%d integer
%e or %E scientific notation
%f floating point
m = 44.5; k = ‘hello world’
res = sprintf(‘%s, it is %d degrees outside’, k, m);
res will be “hello world, it is 44.5 degrees outside”
Unit Name
Optional Presentation Title
Formatting strings with sprintf
• Flags:
left justify; default is right
0 left pads the number with zeroes if padding specified
• Width: just a number
• Precision: just a number
• Examples
sprintf('%01.2f', 12.4);
%outputs 12.40
sprintf('%010.2f', 12.4);
%outputs 0000012.40
sprintf('%.3e', 362525200);
%outputs 3.625e+8
• For further reference go to:
http://php.net/manual/en/function.sprintf.php
http://www.cplusplus.com/reference/clibrary/cstdio/sprintf/
Unit Name
Optional Presentation Title
Taking inputs
• Create a new program called math.m
% math.m
%
% Carries out a series of calculations on two
% numbers
%
% written by Your Name July 2010
Unit Name
Optional Presentation Title
clear all;
%take inputs
num1=input('what is the first number?');
num2=input('what is the second number?');
%show calculations
disp([num2str(num1), '+', num2str(num2), '=',
num2str(num1+num2)]);
disp([num2str(num1), '-', num2str(num2), '=', num2str(num1num2)]);
Unit Name
Optional Presentation Title
boolean expressions
• Boolean expressions either return
1 for true
or
0 for false
• Possible operators:
==
>
>=
equals
greater
than
greater less than greater and
than or
than or
equal to
equal to
Unit Name
<
<=
&
|
or
Optional Presentation Title
•
•
•
•
•
•
•
1==1
(1 + 1)==2
(5 + 5) < 10
(5 + 5) <=10
(1 == 1) & (2==3)
(1 == 1) | (2==3)
5 + (5 < 10)
Unit Name
Note: Put operations inside
parenthesis so they are preformed first.
Optional Presentation Title
Conditionals (if statements)
if(Boolean Expression)
do something
end
you can also do this:
if(boolean expression)
do something
else
do something else
end
Unit Name
or this:
if(boolean expression)
do something
elseif(boolean expr2)
do something else
end
Optional Presentation Title
Back to math.m
if ( (round(num1)==num1) & (round(num2)==num2) )
disp('num1 and num2 are integers')
end
Unit Name
Optional Presentation Title
if ( (round(num1)==num1) & (round(num2)==num2) )
disp('num1 and num2 are integers')
elseif(round(num1)==num1)
disp('only num1 is an integer')
elseif(round(num2)==num2)
disp('only num2 is an integer')
else
disp('neither number is an integer')
end
Unit Name
Optional Presentation Title
Task 1
• Have math.m tell me which number is larger then the other
“the biggest number is …”
==
>
>=
equals
greater
than
greater less than greater and
than or
than or
equal to
equal to
Unit Name
<
<=
&
|
or
Optional Presentation Title
Tic and toc
• tic starts a timer
• toc tells you the number of seconds since when you ran toc
Unit Name
Optional Presentation Title
While loop
• while is a type of loop that runs while a condition is true
while(boolean statement)
%do something many times
end
%you would stop repeating the loop when the
%boolean statement is false OR if you use
%break
Unit Name
Optional Presentation Title
While program
tic
loops = 0;
while(toc<5)
loops = loops+1;
disp(['number of loops = ', num2str(loops)]);
disp(['number of seconds = ', num2str(toc)]);
end
Unit Name
Optional Presentation Title
While program stopping after 10 loops
tic
loops = 0;
while(toc<5)
loops = loops+1;
disp(['number of loops = ', num2str(loops)]);
disp(['number of seconds = ', num2str(toc)]);
if(loops>=10)
break;
end
end
Unit Name
Download