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 array, the vector x is a array, and A is a 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 arrays to create a 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 arrays, the command
`>> cat(4,D,E)`
would create a array (try it!).

Matlab allows arrays to have complex entries. The complex unit 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 :
```>> 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 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: Graphs Up: Simple calculations and graphs Previous: Simple calculations and graphs

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