Matlab Scalars, Variables, Strings

advertisement
Introduction to Matlab
Entering Commands
Constants and Functions
>> pi
ans =
3.1416
>> eps
ans = 2.2204e-016
>> sin(pi/2)
ans =
1
>> log(1000)
ans =
6.9078
>> log10(1000)
ans =
3
Some Constants
• bitmax: Largest usable positive integer
• eps: Smallest number that changes the value of 1
when added to it.
• realmin:Smallest usable positive real number
• realmax: Largest usable positive real number
• ans:Default variable names used for results
• i or j: sqrt(-1)
• inf : Stands for infinity, e.g., 1/0
• NaN or nan :Stands for not a number, e.g., 0/0.
Constants …
>> bitmax
ans = 9.0072e+015
>> eps
ans = 2.2204e-016
>> realmin
ans = 2.2251e-308
>> realmax
ans = 1.7977e+308
>> ans
ans = 1.7977e+308
>> i
ans =
0 + 1.0000i
>> inf
ans = Inf
>> NaN
ans = NaN
Elementary Math Functions
>> help elfun
Elementary math functions.
Trigonometric.
sin
- Sine.
sinh
- Hyperbolic sine.
asin
- Inverse sine.
asinh
- Inverse hyperbolic sine.
cos
- Cosine.
cosh
- Hyperbolic cosine.
acos
- Inverse cosine.
acosh
- Inverse hyperbolic cosine.
tan
- Tangent.
tanh
- Hyperbolic tangent.
atan
- Inverse tangent.
atan2
- Four quadrant inverse tangent.
atanh
sec
sech
asec
asech
csc
csch
acsc
acsch
cot
coth
acot
acoth
- Inverse hyperbolic tangent.
- Secant.
- Hyperbolic secant.
- Inverse secant.
- Inverse hyperbolic secant.
- Cosecant.
- Hyperbolic cosecant.
- Inverse cosecant.
- Inverse hyperbolic cosecant.
- Cotangent.
- Hyperbolic cotangent.
- Inverse cotangent.
- Inverse hyperbolic cotangent.
Elementary Math Functions
Exponential.
exp
- Exponential (e^x).
log
- Natural logarithm.
log10
- Common (base 10) logarithm.
log2
- Base 2 logarithm and dissect floating point number.
pow2
- Base 2 power and scale floating point number.
realpow - Power that will error out on complex result.
reallog - Natural logarithm of real number.
realsqrt - Square root of number greater than or equal to zero.
sqrt
- Square root.
nextpow2 - Next higher power of 2.
Exponential Function Examples
>> exp(log(3))
ans = 3.0000
>> log(exp(3))
ans = 3
>> log2(32)
ans = 5
>> log2(pow2(5))
ans = 5
>> nextpow2(27)
ans = 5
Elementary Math Functions
Complex.
abs
- Absolute value.
angle - Phase angle.
complex - Construct complex data from real and
imaginary parts.
conj
- Complex conjugate.
imag
- Complex imaginary part.
real
- Complex real part.
unwrap - Unwrap phase angle.
isreal - True for real array.
cplxpair - Sort numbers into complex conjugate pairs.
Elementary Math Functions
Rounding and remainder.
fix
- Round towards zero.
floor - Round towards minus infinity.
ceil
- Round towards plus infinity.
round - Round towards nearest integer.
mod - Modulus (signed remainder after division).
rem
- Remainder after division.
sign
- Signum.
Remainder Examples
>> mod( 12,7)
ans =
5
>> mod(-12, 7)
ans =
2
>> rem(12,7)
ans =
5
>> rem(-12, 7)
ans = -5
Rounding Examples
round(2.7)  3, round(2.3)  2
round(-2.7)  -3, round(-2.3)  -2
fix(2.3)  2, fix(2.7) 2
fix(-2.3)  -2, fix(-2.7)  -2
ceil(2.3)  3, ceil(2.7)  3
ceil(-2.3)  -2, ceil(-2.7) -2
floor(2.3)  2, floor(2.7)  2
floor(-2.3)  -3, floor(-2.7)  -3
Getting Help
>> cotangent(pi/2)
??? Undefined function or variable 'cotangent'.
>> help cotangent
cotangent.m not found.
>> lookfor cotangent
ACOT Inverse cotangent.
ACOTH Inverse hyperbolic cotangent.
COT Cotangent.
COTH Hyperbolic cotangent.
ACOT Symbolic inverse cotangent.
ACOTH Symbolic inverse hyperbolic cotangent.
COT Symbolic cotangent.
COTH Symbolic hyperbolic cotangent.
>> help cot
COT Cotangent.
COT(X) is the cotangent of the elements of X.
Variables
Let’s evaluate the following expression in
matlab :
cot(3) log( 3)  cos(3) * sin(log( 3))
3
Now let’s do the following:
cot( 2.7) log( 2.7)  cos(2.7) * sin(log( 2.7))
3
What if we need to evaluate the same expression
for 2.1, 2.2, 2.3, … and lots of other values?
Variables
Lets evaluate:

log(sin( 0.5) cos(0.5) )  sin( 0.5)  cos(0.5)  sin( 0.5)  cos(0.5)
2
It looks like the term
4
2
sin( 0.5)  cos(0.5) 2
appears 3 times in our expression. It would be nice if we
evaluated it once and “remembered” the result for other
occurrences of the term in the formula.

2 2
Variables
• Variables are named memory locations that
can be assigned a value by the user or
programmer
• The system can retrieve , or “remember” the
value of a variable.
• Variables typically reside in main memory.
Variable Examples
>> a
??? Undefined function or variable 'a'.
>> a=2
a= 2
>> a+3
ans = 5
>> sqrt(a+14)
ans = 4
>> a=a+12
a = 14
Variables
• Given:
cot(3) log( 3)  cos(3) * sin(log( 3))
3
Rather than :
>>cot(3)*sqrt(log(3)^3) + cos(3)*sin(log(3)),
>>cot(2.7)*sqrt(log(2.7)^3) + cos(2.7)*sin(log(2.7)), …
Use a variable:
>>x=3
>>cot(x)*sqrt(log(x)^3) + cos(x)*sin(log(x))
>>x=2.7
>>cot(x)*sqrt(log(x)^3) + cos(x)*sin(log(x))
Variables
Rather than evaluating :

log(sin( 0.5) cos(0.5) )  sin( 0.5)  cos(0.5)  sin( 0.5)  cos(0.5)
2
4
2
>> x=0.5
x = 0.5000
>> term=sin(x)+cos(x)^2
term = 1.2496
>> log(term) + realpow(term, 0.25) - term^2
ans = -0.2814

2 2
Who and Clear
>> who
Your variables are:
a ans term x
>> whos
Name
Size
a
1x1
ans
1x1
term
1x1
x
1x1
Bytes Class
8 double array
8 double array
8 double array
8 double array
Grand total is 4 elements using 32 bytes
>> clear a
>> who
Your variables are:
ans term x
>> clear
>> who
>>
Variable Names
• Only first 31 characters significant
• Matlab variables case sensitive
• Use meaningful names rather than shorter
ones !
• Avoid using existing function names !
Variable Name Examples
>> log(5)
ans = 1.6094
>> log = 4
log = 4
>> log(5)
??? Index exceeds matrix
dimensions.
>> clear log
>> log(5)
ans = 1.6094
>> Abc=123
Abc = 123
>> ABc
??? Undefined function or
variable 'ABc'.
Getting User Input
>> age=input('Please enter your age : ')
Please enter your age : 29
age =
29
>> age + 2
ans =
31
String variables
>> a = 'This is a string'
a =This is a string
>> b= 'Another string'
b =Another string
>> a + b
??? Error using ==> +
Array dimensions must match for binary array op.
>> whos
Name
Size
Bytes Class
a
1x16
32 char array
b
1x14
28 char array
Grand total is 30 elements using 60 bytes
>> c = [a b 'Yet another string']
c =This is a stringAnother stringYet another string
String variables
• Variables can change types based on the values assigned to them :
>> a
a =This is a string
>> a=3;
>> whos
Name
Size
a
b
c
1x1
1x14
1x48
Bytes Class
8 double array
28 char array
96 char array
Grand total is 63 elements using 132 bytes
Converting Numbers to Strings
• You can use the function num2str and int2str:
>> s = 'The number ' + 3
s = 87 107 104 35 113 120 112 101 104 117 35
>> s = ['The number ' 3]
s =The number
>> s = ['The number ' num2str(3)]
s =The number 3
>> int2str(2.3)
ans =2
Converting Strings to Numbers
>> x = ['123' '789']
x =123789
>> x2 = str2num(x)
x2 =
123789
>> x2 + 1
ans =
123790
>> str2int('1.2')
??? Undefined function or variable 'str2int'.
Display Format
• The values displayed at the screen doesn’t necessarily
include all the information.
• It is possible to change the display format.
>> 12345678901234567890.12345678901234567890
ans = 1.2346e+019
>> format long
>> 12345678901234567890.12345678901234567890
ans = 1.234567890123457e+019
Operator Precedence
1 The contents of all bracketed expressions
are evaluated, starting from the innermost
brackets and working out.
2 All exponentials are evaluated, working
from left to right.
3 All multiplications and divisions are
evaluated, working from left to right.
4 All additions and subtractions are evaluated,
working from left to right.
Operator Precedence
>> 2 + 3 * 4
ans = 14
>> 2 * 3 ^ 2
ans = 18
>> (2 + 3) * 4
ans = 20
>> (2^(2 + 3)) * 4
ans = 128
Download