# Difference between revisions of "MatlabIntro"

Jump to: navigation, search

## Basics

• Use semi-colon at the end of the line to prevent the output of the operation to be printed to the screen
```>> x = 1

x =

1
```

vs.

```>> x = 1;
>>
```

• Comments are specified using % at the beginning of the comment. Only line comments are allowed (sorry, but no block-comments, although there's a shortcut in the editor to comment out all the selected lines)
```>> % This is a comment
>> x = 0; % this is another comment
```

• Functions may return more than one value, and they can be of any type. For example:
```>> [r,c] = size([ones(2)])

r =

2

c =

2
```

## Vector and Matrices

• Use square brackets to define a vector/matrix
```>> x = [1 2 3 4 5]
```

• Inside a vector/matrix definition, commas or spaces separate elements row-wise. For example:
```>> x = [1 2 3 4 5]
```

is the same as:

```>> x = [1,2,3,4,5]
```

and they both generate a row vector. Semi-colons, instead, separate elements column-wise. For example, the following line will create a column vector:

```>> x = [1;2;3;4;5]
```

• You can combine both to create a bigger matrix:
```>> x = [1 2 3 4;2 3 4 5;3 4 5 6]

x =

1     2     3     4
2     3     4     5
3     4     5     6

```
• Some useful vector/matrix operators are:

In the following code snippets I'll assume that x was defined as:

```>> x = [1 2;3 4]

x =

1     2
3     4
```
• Use ' as a suffix to transpose the vector/matrix:
```>> x'

ans =

1     3
2     4
>>
```
• The function size(x) will return the size of x: first number is the number of row and the second is the number of columns:
```>> size(x)

ans =

2     2
```
• You can access individual elements of a matrix using parenthesis (first argument specifies the row and the second specifies the column):
```>> x(2,1)

ans =

3
```

## Plotting

The basic command is plot(x), to plot the contents of x (if x is a matrix, then each column is plotted as a different line):

```fs = 441000;
t = 0:1/fs:0.01;
plot(sin(2*pi*220*t));
```

You can also use plot(x,y):

```plot(t, sin(2*pi*220*t));
```

By default plot will erase the previous plot before drawing the new one. Use hold to prevent this from happening. Also, you can use a third argument to specify the line color (and other plotting options):

```hold on;
plot(t, sin(2*pi*110*t), 'r');
plot(t, sin(2*pi*330*t), 'g');
plot(t, sin(2*pi*440*t), 'k');
hold off
```

## General tips

1. Try to vectorize every operation if you can