**Variables**

No need for types. i.e.,

All variables are created with double precision unless specified and they are matrices.

After these statements, the variables are 1×1 matrices with double precision

## Array, Matrix

- a vector x = [1 2 5 1]

```
x =
1 2 5 1
```

- a matrix x = [1 2 3; 5 1 4; 3 2 -1]

```
x =
1 2 3
5 1 4
3 2 -1
```

transpose y = x’

y =

1

2

5

1

## Long Array, Matrix

```
t =1:10
t =
1 2 3 4 5 6 7 8 9 10
k = 2:-0.5:-1
k =
2 1.5 1 0.5 0 -0.5 -1
B = [1:4; 5:8]
B =
1 2 3 4
5 6 7 8
```

## Generating Vectors from functions

- zeros(M,N) :: MxN matrix of zeros

x = zeros(1,3)

x = 0 0 0

- ones(M,N) :: MxN matrix of ones

x = ones(1,3)

x = 1 1 1

- rand(M,N) MxN matrix of uniformly distributed random numbers on (0,1)

x = rand(1,3)

x = [0.9501 0.2311 0.6068]

## Matrix Index

The matrix indices begin from 1 (not 0 (as in C))

The matrix indices must be positive integer

Given:

A(-2), A(0)

Error: ??? Subscript indices must either be real positive integers or logicals.

A(4,2)

Error: ??? Index exceeds matrix dimensions.

## Concatenation of Matrices

x = [1 2], y = [4 5], z=[ 0 0]

```
A = [ x y]
1 2 4 5
```

B = [x ; y]

```
1 2
4 5
```

C = [x y ;z]

Error:

??? Error using ==> vertcat CAT arguments dimensions are not consistent.

## Operators (arithmetic)

+ addition

– subtraction

* multiplication

division

^ power

‘ complex conjugate transpose

## Matrices Operations

## Operators (Element by Element)

.* element-by-element multiplication

./ element-by-element division

.^ element-by-element power

## The use of “.” – “Element” Operation

K= x^2

Erorr:

??? Error using ==> mpower Matrix must be square.

B=x*y

Erorr:

??? Error using ==> mtimes Inner matrix dimensions must agree.

## Basic Task: Plot the function sin(x) between 0≤x≤4π

Create an x-array of 100 samples between 0 and 4π.

Calculate sin(.) of the x-array

Plot the y-array

## Plot the function e-x/3sin(x) between 0≤x≤4π

Create an x-array of 100 samples between 0 and 4π.

Calculate sin(.) of the x-array

Calculate e-x/3 of the x-array

Multiply the arrays y and y1

## Plot the function e-x/3sin(x) between 0≤x≤4π

Multiply the arrays y and y1 correctly

Plot the y2-array

## Display Facilities

- plot(.)

- stem(.)

- title(.)

- xlabel(.)

- ylabel(.)

## Operators (relational, logical)

== Equal to

~= Not equal to

< Strictly smaller

Strictly greater

<= Smaller than or equal to

= Greater than equal to

& And operator

| Or operator

## Flow Control

if

for

while

break

….

## Control Structures

- If Statement Syntax

```
if (Condition_1)
Matlab Commands
elseif (Condition_2)
Matlab Commands
elseif (Condition_3)
Matlab Commands
else
Matlab Commands
end
```

```
Some Dummy Examples
if ((a>3) & (b==5))
Some Matlab Commands;
end
if (a<3)
Some Matlab Commands;
elseif (b~=5)
Some Matlab Commands;
end
if (a<3)
Some Matlab Commands;
else
Some Matlab Commands;
end
```

- For loop syntax

```
for i=Index_Array
Matlab Commands
end
```

```
Some Dummy Examples
for i=1:100
Some Matlab Commands;
end
for j=1:3:200
Some Matlab Commands;
end
for m=13:-0.2:-21
Some Matlab Commands;
end
for k=[0.1 0.3 -13 12 7 -9.3]
Some Matlab Commands;
end
```

- While Loop Syntax

```
while (condition)
Matlab Commands
end
```

```
Dummy Example
while ((a>3) & (b==5))
Some Matlab Commands;
end
```

## Use of M-File

- Extension “.m”
- A text file containing script or function or program to run

## Writing User Defined Function

- Functions are m-files which can be executed by specifying some inputs and supply some desired outputs.
- The code telling the Matlab that an m-file is actually a function is

- You should write this command at the beginning of the m-file and you should save the m-file with a file name same as the function name

- Examples
- Write a function : out=squarer (A, ind)
- Which takes the square of the input matrix if the input indicator is equal to 1
- And takes the element by element square of the input matrix if the input indicator is equal to 2

- Another function which takes an input array and returns the sum and product of its elements as outputs

- The function sumprod(.) can be called from command window or an m-file as

Notes:

- “%” is the neglect sign for Matlab (equaivalent of “//” in C). Anything after it on the same line is neglected by Matlab compiler.
- Sometimes slowing down the execution is done deliberately for observation purposes. You can use the command “pause” for this purpose

## Useful Commands

The two commands used most by Matlab users are