# channelflow.org

### Site Tools

gibson:teaching:fall-2012:math445:review_diary

# Diary of review session

```x = 1:3     % 1 to 3 by increments of 1
x =
1     2     3

x = 1:3:10   % 1 to 10 by increments of 3
x =
1     4     7    10

x = [ 3 8 12 14 ] % specify elements of a vector manually
x =
3     8    12    14

x = [ 3 8 12 14 ]' % ' means transpose: turns a row vector into a col vector
x =
3
8
12
14

x = [ 3 ; 8 ; 12 ; 14 ] % semicolons inside [] delimit rows, produces col vector
x =
3
8
12
14

A = [ 4 2 1 ; 3 4 5; 7 2 9] % semicolons delimit rows, produces matrix
A =
4     2     1
3     4     5
7     2     9

A = [ 4 2 1 ; 3 4 5; 7 2 9]' % ' means transpose, interchange A(i,j) and A(j,i)
A =
4     3     7
2     4     2
1     5     9

3 + 4*i     % this is how you enter a complex number
ans =
3.0000 + 4.0000i

i           % i is the unit imaginary number
ans =
0 + 1.0000i

i^2         % i == sqrt(-1), i^2 == -1
ans =
-1

z = 3 + 4*i % assign complex number to z
z =
3.0000 + 4.0000i

A = [ 4 2 1 ; 3 4 5; 7 2 9+2*i] % a matrix with a complex element
A =

4.0000             2.0000             1.0000
3.0000             4.0000             5.0000
7.0000             2.0000             9.0000 + 2.0000i

1.3e-03 % compact scientific notation, means 1.3 times 10^(-3)
ans =
0.0013

4e14    % means 4 x 10^14
ans =
4.0000e+14

4*10^(+14)   % same thing
ans =
4.0000e+14

% A floating point number has sixteen digits of accuracy.
% That means sixteen digits in the MANTISSA (here 1.4)

1.4e75
ans =
1.4000e+75

% The EXPONENT can go up to +308 or -324
1e308        % this is ok
ans =
1.0000e+308

1e309        % this is not ok
ans =
Inf

1/0          % infinity, infinity, how can I reach infinity?
ans =
Inf

-1/0         % another way, downwards
ans =
-Inf

Inf-Inf      % this is undefined, so the answer is Not a Number
ans =
NaN

0/0          % this is undefined, so the answer is Not a Number
ans =
NaN

tan(pi/2)    % might guess Inf, but Matlab's pi is rounded to sixteen digits
ans =
1.6331e+16

format long
pi
ans =

3.141592653589793

4 + 7^4 + 0/0*(4+3)   % a single NaN in an expression with make the result NaN
ans =
NaN

% elementwise calculations
x = [2 1 3];
x =
2     1     3

y = [4 6 9];
y =
4     6     9

x + y    % + on vectors means elementwise addtion
ans =
6     7    12

x - y    % - on vectors means elementwise subtraction
ans =
-2    -5    -6

% but * on vectors is the innerproduct!
x = [2 1 3]
x =
2     1     3
y = [4 6 9]'
y =
4
6
9

x*y     % innerproduct for 3-vectors is x(1)*y(1) + x(2)*y(2) + x(3)*y(3)
ans =
41

2*4 + 1*6 + 3*9
ans =
41

% to get component wise multiplication of vectors, use .* sytnax

x = [2 1 3]
x =
2     1     3

y = [4 6 9]
y =
4     6     9

x.*y          % componentwise multiplication: ans(i) = x(i)*y(i)
ans =
8     6    27

x = [2 1 3];
x.^2          % componentwise square
ans =
4     1     9

x./y          % componentwise division
ans =
0.500000000000000   0.166666666666667   0.333333333333333

0 == 0 && 1 == 1  % true AND true => true
ans =
1

0 == 0 && 1 == 0  % true AND false => false
ans =
0

0 == 0 || 1 == 0  % true OR false  => true

zeros(4,5) % makes a 4 x 5 matrix of zeros
ans =
0     0     0     0     0
0     0     0     0     0
0     0     0     0     0
0     0     0     0     0

ones(4,5) % makes a 4 x 5 matrix of ones
ans =
1     1     1     1     1
1     1     1     1     1
1     1     1     1     1
1     1     1     1     1

eye(5) % makes a 5 x 5 identity matrix, I
ans =
1     0     0     0     0
0     1     0     0     0
0     0     1     0     0
0     0     0     1     0
0     0     0     0     1

% rand(4,5) makes a 4 x 5 matrix of random numbers
% uniformly distributed btwn 0 and 1

rand(4,5)
ans =
0.6557    0.6787    0.6555    0.2769    0.6948
0.0357    0.7577    0.1712    0.0462    0.3171
0.8491    0.7431    0.7060    0.0971    0.9502
0.9340    0.3922    0.0318    0.8235    0.0344

randi(10, 3,2) % makes a 3 x 2 matrix of random integers btwn 1 and 10
ans =

5     8
7     3
8     7

% makes a 3 x 2 matrix of random numbers with a Guassian or normal distrib.
randn(3,2)
ans =

0.6007   -0.0068
-1.2141    1.5326
-1.1135   -0.7697

x = randn(1000,1); % make a vector of 1000 random numbers in Gaussian dist
hist(x)            % plot a histogram of x
xlabel('value of x')
ylabel('number of occurences')
title('Histogram of Gaussian distribution')

x = rand(1000,1); % make a vector of 1000 random numbers in uniform distrib
figure(2) ;       % open a new figure window
hist(x)
title('Histogram of uniform distribution')
ylabel('number of occurences')
xlabel('valiue of x')

% size function
A = rand(4,5)
A =
0.8844    0.6198    0.1962    0.7985    0.7022
0.4390    0.2606    0.3039    0.9875    0.3755
0.7817    0.4457    0.4833    0.1590    0.9737
0.1485    0.8440    0.3378    0.2369    0.9723

size(A)
ans =
4     5

[M N] = size(A)
M =
4
N =
5

size(A,1) % return the number of rows in A
ans =
4

size(A,2) % return the number of cols in A
ans =
5

x = input('please type in a number: ')
please type in a number: 34

x =
34

disp('hello, world!') % simple print of input
hello, world!

% fprintf is for more complicated printing
x = 12; y = 3;

% print the string argument, substituting the values of x,y in place of %d's
% %d marker means decimal variable
fprintf('x == %d, y == %d\n', x, y);
x == 12, y == 3

x = 'z'
x =
z

% %c marker means character variable
fprintf('x == %c\n', x);
x == z``` 