Logo Background

Matlab Expressions

  • Written by matlabtutorialsmatlabtutorials No Comments Comments
    Last Updated: August 5, 2009

    Variables

    Like most other programming languages, the language provides mathematical expressions, but unlike most programming languages, these expressions involve entire matrices.

    does not require any type declarations or dimension statements. When encounters a new variable name, it automatically creates the variable and allocates the appropriate amount of storage. If the variable already exists, changes its contents and, if necessary, allocates new storage. For example,

    1
    
    num_students = 25

    creates a 1-by-1 matrix named num_students and stores the value 25 in its single element. To view the matrix assigned to any variable, simply enter the variable name.

    Variable names consist of a letter, followed by any number of letters, digits, or underscores. is case sensitive; it distinguishes between uppercase and lowercase letters. A and a are not the same variable.

    Although variable names can be of any length, uses only the first N characters of the name, (where N is the number returned by the function namelengthmax), and ignores the rest. Hence, it is important to make each variable name unique in the first N characters to enable to distinguish variables.

    1
    2
    3
    
    N = namelengthmax
    N =
    63

    The genvarname function can be useful in creating variable names that are both valid and unique.

    Numbers

    uses conventional decimal notation, with an optional decimal point and leading plus or minus sign, for numbers. Scientific notation uses the letter e to specify a power-of-ten scale factor. Imaginary numbers use either i or j as a suffix. Some of legal numbers are

    1
    2
    3
    
    3              -99            0.0001
    9.6397238      1.60210e-20    6.02252e23
    1i             -3.14159j      3e5i

    All numbers are stored internally using the long format specified by the IEEE® floating-point standard. Floating-point numbers have a finite precision of roughly 16 significant decimal digits and a finite range of roughly 10-308 to 10+308.

    software stores the real and imaginary parts of a complex number. It handles the magnitude of the parts in different ways depending on the context. For instance, the sort function sorts based on magnitude and resolves ties by phase angle.

    1
    2
    3
    
    sort([3+4i, 4+3i])
    ans =
    4.0000 + 3.0000i   3.0000 + 4.0000i

    This is because of the phase angle:

    1
    2
    3
    4
    5
    6
    
    angle(3+4i)
    ans =
    0.9273
    angle(4+3i)
    ans =
    0.6435

    The “equal to” relational operator == requires both the real and imaginary parts to be equal. The other binary relational operators > <, >=, and <= ignore the imaginary part of the number and consider the real part only.

    Operators

    Expressions use familiar arithmetic operators and precedence rules.

    +

    Addition

    -

    Subtraction

    *

    Multiplication

    /

    Division

    \

    Left division (described in Linear Algebra in the documentation)

    ^

    Power

    Complex conjugate transpose

    ( )

    Specify evaluation order

    Functions

    provides a large number of standard elementary mathematical functions, including abs, sqrt, exp, and sin. Taking the square root or logarithm of a negative number is not an error; the appropriate complex result is produced automatically. also provides many more advanced mathematical functions, including Bessel and gamma functions. Most of these functions accept complex arguments. For a list of the elementary mathematical functions, type

    1
    
    help elfun

    For a list of more advanced mathematical and matrix functions, type

    1
    2
    
    help specfun
    help elmat

    Some of the functions, like sqrt and sin, are built in. Built-in functions are part of the core so they are very efficient, but the computational details are not readily accessible. Other functions, like gamma and sinh, are implemented in M-files.

    There are some differences between built-in functions and other functions. For example, for built-in functions, you cannot see the code. For other functions, you can see the code and even modify it if you want.

    Several special functions provide values of useful constants.

    1
    2
    3
    
    pi
     
    3.14159265...

    i

    Imaginary unit,

    j

    Same as i

    eps

    Floating-point relative precision,

    realmin

    Smallest floating-point number,

    realmax

    Largest floating-point number,

    Inf

    Infinity

    NaN

    Not-a-number

    Infinity is generated by dividing a nonzero value by zero, or by evaluating well defined mathematical expressions that overflow, i.e., exceed realmax. Not-a-number is generated by trying to evaluate expressions like 0/0 or Inf-Inf that do not have well defined mathematical values.

    The function names are not reserved. It is possible to overwrite any of them with a new variable, such as

    1
    
    eps = 1.e-6

    and then use that value in subsequent calculations. The original function can be restored with

    of Expressions

    You have already seen several of expressions. Here are a few more , and the resulting values:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    
    rho = (1+sqrt(5))/2
    rho =
    1.6180
     
    a = abs(3+4i)
    a =
    5
     
    z = sqrt(besselk(4/3,rho-i))
    z =
    0.3730+ 0.3214i
     
    huge = exp(log(realmax))
    huge =
    1.7977e+308
     
    toobig = pi*huge
    toobig =
    Inf