# Getting Started with MATLAB

Welcome to this MATLAB Video tutorial. If you have never used MATLAB before, this demonstration will get you started and show you where to go to next to learn more.

## Creating Variables

The MATLAB language lets you construct commands to create and process variables. You can create variables by entering them in the command window here. For example,

```a = 1
```
```a =

1

```
```b = 2
```
```b =

2

```
```c = a+b
```
```c =

3

```

or...

```d = cos(a)
```
```d =

0.5403

```

## Creating Vectors

MATLAB is an array based language where variables can be vectors, matrices or N dimensional arrays. You use square brackets to construct arrays. To create a row vector you can type,

```t=[1 2 3 4 5]
```
```t =

1     2     3     4     5

```

You can use the colon operator to simplify the creation of equally spaced arrays.

```t = 1:5 % t equals 1 to 5
```
```t =

1     2     3     4     5

```

You can recall previously entered commands by dragging them from the command history here or by pressing the up-arrow key. You can then edit it...

```t=0:.01:1 % t goes from 0 in steps of .01 to 1
```
```t =

Columns 1 through 6

0    0.0100    0.0200    0.0300    0.0400    0.0500

Columns 7 through 12

0.0600    0.0700    0.0800    0.0900    0.1000    0.1100

Columns 13 through 18

0.1200    0.1300    0.1400    0.1500    0.1600    0.1700

Columns 19 through 24

0.1800    0.1900    0.2000    0.2100    0.2200    0.2300

Columns 25 through 30

0.2400    0.2500    0.2600    0.2700    0.2800    0.2900

Columns 31 through 36

0.3000    0.3100    0.3200    0.3300    0.3400    0.3500

Columns 37 through 42

0.3600    0.3700    0.3800    0.3900    0.4000    0.4100

Columns 43 through 48

0.4200    0.4300    0.4400    0.4500    0.4600    0.4700

Columns 49 through 54

0.4800    0.4900    0.5000    0.5100    0.5200    0.5300

Columns 55 through 60

0.5400    0.5500    0.5600    0.5700    0.5800    0.5900

Columns 61 through 66

0.6000    0.6100    0.6200    0.6300    0.6400    0.6500

Columns 67 through 72

0.6600    0.6700    0.6800    0.6900    0.7000    0.7100

Columns 73 through 78

0.7200    0.7300    0.7400    0.7500    0.7600    0.7700

Columns 79 through 84

0.7800    0.7900    0.8000    0.8100    0.8200    0.8300

Columns 85 through 90

0.8400    0.8500    0.8600    0.8700    0.8800    0.8900

Columns 91 through 96

0.9000    0.9100    0.9200    0.9300    0.9400    0.9500

Columns 97 through 101

0.9600    0.9700    0.9800    0.9900    1.0000

```

Adding a semicolon avoids command output being echoed to the command window.

```t=0:.01:1;
```

## The whos Command and WSB

To see what variables you have created so far type,

```whos
```
```  Name      Size             Bytes  Class     Attributes

a         1x1                  8  double
b         1x1                  8  double
c         1x1                  8  double
d         1x1                  8  double
t         1x101              808  double

```

...or view a list in the workspace browser here

To see the value of a variable just type its name such as,

```b
```
```b =

2

```

## Vector Operations

You carry-out operations on vectors just like simple scalars. For example,

```y = sin(2*pi*t)
```
```y =

Columns 1 through 6

0    0.0628    0.1253    0.1874    0.2487    0.3090

Columns 7 through 12

0.3681    0.4258    0.4818    0.5358    0.5878    0.6374

Columns 13 through 18

0.6845    0.7290    0.7705    0.8090    0.8443    0.8763

Columns 19 through 24

0.9048    0.9298    0.9511    0.9686    0.9823    0.9921

Columns 25 through 30

0.9980    1.0000    0.9980    0.9921    0.9823    0.9686

Columns 31 through 36

0.9511    0.9298    0.9048    0.8763    0.8443    0.8090

Columns 37 through 42

0.7705    0.7290    0.6845    0.6374    0.5878    0.5358

Columns 43 through 48

0.4818    0.4258    0.3681    0.3090    0.2487    0.1874

Columns 49 through 54

0.1253    0.0628    0.0000   -0.0628   -0.1253   -0.1874

Columns 55 through 60

-0.2487   -0.3090   -0.3681   -0.4258   -0.4818   -0.5358

Columns 61 through 66

-0.5878   -0.6374   -0.6845   -0.7290   -0.7705   -0.8090

Columns 67 through 72

-0.8443   -0.8763   -0.9048   -0.9298   -0.9511   -0.9686

Columns 73 through 78

-0.9823   -0.9921   -0.9980   -1.0000   -0.9980   -0.9921

Columns 79 through 84

-0.9823   -0.9686   -0.9511   -0.9298   -0.9048   -0.8763

Columns 85 through 90

-0.8443   -0.8090   -0.7705   -0.7290   -0.6845   -0.6374

Columns 91 through 96

-0.5878   -0.5358   -0.4818   -0.4258   -0.3681   -0.3090

Columns 97 through 101

-0.2487   -0.1874   -0.1253   -0.0628   -0.0000

```

This makes use of the constant pi, pre-defined in MATLAB.

## Basic Plotting

You can plot y against t with...

```plot(t,y) % the plot command.
``` ## Complex Numbers

In MATLAB, variables can be complex; with i used to denote the imaginary part such as...

```x= 3 + 4i
```
```x =

3.0000 + 4.0000i

```

## Creating Matrices

You enter matrices using the semicolon in the following way,

```a = [1 2 3; 4 5 6; 7 8 10]
```
```a =

1     2     3
4     5     6
7     8    10

```

...or you can use functions.

## Function Browser and Hints

You can browse a list of available functions in MATLAB by clicking this icon, and browsing functions by category or by searching using keywords here. Here we will generate a matrix of random numbers. Double clicking enters the function name.

Pausing after typing a parentheses shows a list of possible arguments

```data=rand(5,5)
```
```data =

0.7577    0.7060    0.8235    0.4387    0.4898
0.7431    0.0318    0.6948    0.3816    0.4456
0.3922    0.2769    0.3171    0.7655    0.6463
0.6555    0.0462    0.9502    0.7952    0.7094
0.1712    0.0971    0.0344    0.1869    0.7547

```

## Help

You can access help on all of MATLAB by clicking on the question mark here, then browse or search for information.

## Accessing Demonstrations

You can access demonstrations and getting started documentation from this message bar.

You can find the dimensions of an array with the size function.

```size(data)
```
```ans =

5     5

```

...which is also shown in the workspace browser.

## Matrix Operations

You can perform matrix operations such as...

```b = a' % b = the transpose of a.
```
```b =

1     4     7
2     5     8
3     6    10

```
```c = a*b % c = a times b, which performs matrix multiplication,...
```
```c =

14    32    53
32    77   128
53   128   213

```

...or

```c = a.*b %  c = a dot times b
```
```c =

1     8    21
8    25    48
21    48   100

```

...which performs element-wise multiplication, where the corresponding elements of each matrix are multiplied.

You could calculate the inverse of matrix a...

```inv(a)
```
```ans =

-0.6667   -1.3333    1.0000
-0.6667    3.6667   -2.0000
1.0000   -2.0000    1.0000

```
```inv(a)*a % and multiply this by a...
```
```ans =

1.0000         0    0.0000
0    1.0000         0
-0.0000   -0.0000    1.0000

```

...to confirm you get the identity matrix.

## Indexing

You can select elements or sections of an array by indexing. For the variable a,

```a
```
```a =

1     2     3
4     5     6
7     8    10

```

Here is the value at...

```a(2,3) % ...the second row and third column
```
```ans =

6

```

Or for the variable data,

```data
```
```data =

0.7577    0.7060    0.8235    0.4387    0.4898
0.7431    0.0318    0.6948    0.3816    0.4456
0.3922    0.2769    0.3171    0.7655    0.6463
0.6555    0.0462    0.9502    0.7952    0.7094
0.1712    0.0971    0.0344    0.1869    0.7547

```

...here is the section from,

```data(1:3,2:end) % rows 1 to 3 and columns 2 to the end.
```
```ans =

0.7060    0.8235    0.4387    0.4898
0.0318    0.6948    0.3816    0.4456
0.2769    0.3171    0.7655    0.6463

```

You can set values in this way too. For example, with data, you could

```data(1:2, :) = 0 % set rows 1:2 and all the columns to zero.
```
```data =

0         0         0         0         0
0         0         0         0         0
0.3922    0.2769    0.3171    0.7655    0.6463
0.6555    0.0462    0.9502    0.7952    0.7094
0.1712    0.0971    0.0344    0.1869    0.7547

```

The colon operator used on its own in indexing, specifies "all elements", in this case, all columns.

Note that array indices in MATLAB start at 1.

## Plotting Matrices

And you can plot matrices as well. If you wanted to display the matrix w...

```w=y'*y; % ...generated by multiplying the transpose of the sine wave vector y, with itself...
```

...you could enter...

```surf(w);
``` ...which creates a surface plot.

## Conclusion

That concludes the demonstration. You can try some of these examples in MATLAB now or watch one of the other videos.