next up previous contents
Next: Graphs Up: Simple calculations and graphs Previous: Simple calculations and graphs

Entering vectors and matrices; built-in variables and functions; help

The basic data type in Matlab is an n-dimensional array of double precision numbers. Matlab 5 differs from earlier versions of Matlab in that other data types are supported (also in the fact that general, multi-dimensional arrays are supported; in earlier versions, every variable was a two-dimensional array (matrix), with one-dimensional arrays (vectors) and zero-dimensional arrays (scalars) as special cases). The new data types include structures (much like structures in the C programming language--data values are stored in named fields), classes, and ``cell arrays'', which are arrays of possibly different data types (for example, a one-dimensional array whose first entry is a scalar, second entry a string, third entry a vector). I mostly discuss the basic features using n-dimensional arrays, but I briefly discuss the other data types later in the paper.

The following commands show how to enter numbers, vectors and matrices, and assign them to variables (>> is the Matlab prompt on my computer; it may be different with different computers or different versions of Matlab. I am using version 5.2.0.3084. On my Unix workstation, I start Matlab by typing matlab at the Unix prompt.):

>> a = 2  
a =
     2
>> x = [1;2;3]
x =
     1
     2
     3
>> A = [1 2 3;4 5 6;7 8 0]
A =
     1     2     3
     4     5     6
     7     8     0
Notice that the rows of a matrix are separated by semicolons, while the entries on a row are separated by spaces (or commas).

A useful command is ``whos'', which displays the names of all defined variables and their types:

>> whos
  Name      Size         Bytes  Class

  A         3x3             72  double array
  a         1x1              8  double array
  x         3x1             24  double array

Grand total is 13 elements using 104 bytes
Note that each of these three variables is an array; the ``shape'' of the array determines its exact type. The scalar a is a tex2html_wrap_inline635 array, the vector x is a tex2html_wrap_inline637 array, and A is a tex2html_wrap_inline639 array (see the ``size'' entry for each variable).

One way to enter a n-dimensional array (n>2) is to concatenate two or more (n-1)-dimensional arrays using the cat command. For example, the following command concatenates two tex2html_wrap_inline647 arrays to create a tex2html_wrap_inline649 array:

>> C = cat(3,[1,2;3,4;5,6],[7,8;9,10;11,12])
C(:,:,1) =
     1     2
     3     4
     5     6
C(:,:,2) =
     7     8
     9    10
    11    12
>> whos
  Name      Size         Bytes  Class

  A         3x3             72  double array
  C         3x2x2           96  double array
  a         1x1              8  double array
  x         3x1             24  double array

Grand total is 25 elements using 200 bytes
Note that the argument ``3'' in the cat command indicates that the concatenation is to occur along the third dimension. If D and E were tex2html_wrap_inline655 arrays, the command
>> cat(4,D,E)
would create a tex2html_wrap_inline657 array (try it!).

Matlab allows arrays to have complex entries. The complex unit tex2html_wrap_inline659 is represented by either of the built-in variables i or j:

>> sqrt(-1)
ans =
        0 + 1.0000i
This example shows how complex numbers are displayed in Matlab; it also shows that the square root function is a built-in feature.

The result of the last calculation not assigned to a variable is automatically assigned to the variable ans, which can then be used as any other variable in subsequent computations. Here is an example:

>> 100^2-4*2*3
ans =
        9976
>> sqrt(ans)
ans =
   99.8799
>> (-100+ans)/4
ans =
   -0.0300
The arithmetic operators work as expected for scalars. A built-in variable that is often useful is tex2html_wrap_inline661 :
>> pi
ans =
    3.1416

Above I pointed out that the square root function is built-in; other common scientific functions, such as sine, cosine, tangent, exponential, and logarithm are also pre-defined. For example:

>> cos(.5)^2+sin(.5)^2
ans =
     1
>> exp(1)
ans =
    2.7183
>> log(ans)
ans =
     1
Other elementary functions, such as hyperbolic and inverse trigonometric functions, are also defined.

At this point, rather than providing a comprehensive list of functions available in Matlab, I want to explain how to get this information from Matlab itself. An extensive online help system can be accessed by commands of the form help <command-name>. For example:

>> help ans

 ANS    The most recent answer.
        ANS is the variable created automatically when expressions
        are not assigned to anything else. ANSwer.

>> help pi 

 PI     3.1415926535897....
        PI = 4*atan(1) = imag(log(-1)) = 3.1415926535897....

A good place to start is with the command help help, which explains how the help systems works, as well as some related commands. Typing help by itself produces a list of topics for which help is available; looking at this list we find the entry ``elfun--elementary math functions.'' Typing help elfun produces a list of the math functions available. We see, for example, that the inverse tangent function (or arctangent) is called atan:

>> pi-4*atan(1)
ans =
     0

It is often useful, when entering a matrix, to suppress the display; this is done by ending the line with a semicolon (see the first example in the next section). The command more can be used to cause Matlab to display only one page of output at a time. Typing more on causes Matlab to pause between pages of output from subsequent commands; as with the Unix ``more'' command, a space character then advances the output by a page, a carriage return advances the output one line, and the character ``q'' ends the output. Once the command more on is issued, this feature is enabled until the command more off is given.


next up previous contents
Next: Graphs Up: Simple calculations and graphs Previous: Simple calculations and graphs

Mark S. Gockenbach
Wed Sep 8 10:44:13 EDT 1999