Handling arrays 1 2
This presentation is the property of its rightful owner.
Sponsored Links
1 / 24

Handling Arrays 1/2 PowerPoint PPT Presentation


  • 61 Views
  • Uploaded on
  • Presentation posted in: General

Handling Arrays 1/2. Numerical Computing with . MATLAB for Scientists and Engineers. You will be able to. Create vectors and matrices , Perform math operations on matrices , Extract part of a matrix, Plot simple graph using arrays,

Download Presentation

Handling Arrays 1/2

An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -

Presentation Transcript


Handling arrays 1 2

Handling Arrays 1/2

Numerical Computing

with .

MATLAB

for Scientists and Engineers


You will be able to

You will be able to

  • Create vectors and matrices,

  • Perform math operations on matrices,

  • Extract part of a matrix,

  • Plotsimple graph using arrays,

  • Manipulatesound using array operations


Simple array

Simple Array

  • Array: Collection of scalar values

    • Vector: n x 1 or 1 x n

    • Matrix: n x m

>> m = [ 1 3 2 4]

m =

1 3 2 4

>> v = [ 1; 2; 3; 4]

v =

1

2

3

4

>> M = [ 1 2; 3 4]

M =

1 2

3 4

row vector

column vector

matrix


Size of arrays

Size of Arrays

  • whos: prints its size, class, number of bytes

  • size: print its number of rows and columns

  • length: max(size(v))

s=size(a)

2

3

a

[m,n]=size(a)

3

2

m

n

1

2

3

m=size(a,1)

2

4

5

6

n=size(a,2)

3

l=length(a)

3

e=numel(a)

6


Plotting arrays

Plotting Arrays

  • plot, stem, bar, ...

matrix_plot.m

%% Plotting vector

v = [1 3 2 4];

figure(1), plot(v,'r-');

figure(2), plot(v,'bs');

figure(3), stem(v);

figure(4), bar(v)

%% plotting matrix

M = [1 3 2 4 8 3 5;

2 6 1 2 4 5 2]';

figure(5), plot(M)

figure(6), bar(M)


Complex array element

Complex Array Element

  • MATLAB understands i or j as

[ i 8 1+i sin(0.1*pi)]

0 + 1.0000i

8.0000

1.0000 + 1.0000i

0.3090

a=[ i 8 1 + i 2 * 4 ]

MATLAB is smart!

0 + 1.0000i

8.0000

1.0000 + 1.0000i

8

a(1)

a(2)

a(3)

a(4)


Array addressing 1 2

Array Addressing 1/2

  • Array index starts from 1.

Array Index :

1

2

3

4

5

6

0

a=[ 0:0.2:1];

0.2

0.4

0.6

0.8

1.0

0

b=a(1:3);

0.2

0.4

0

b=a(1:2:5);

0.4

0.8

b=a(3:end);

0.6

0.8

1.0

0.4

b=a(end:-1:1);

1.0

0.8

0.6

0.4

0.2

0

b=a([3 1 4 2 6 5]);

0.4

0

0.6

0.2

1.0

0.8


Array addressing 2 2

Array Addressing 2/2

  • Index should be integer type or an integer value

0

a=[ 0:0.2:1];

0.2

0.4

0.6

0.8

1.0

b=a(8);

b=a(1.2);

b=a(ceil(2.3*2));

0.8

b=a(int16(2.3));

0.2

b=a(int16([2.3 3.2]);

0.4

0.2


Creating arrays

Creating Arrays

  • Range: start : step : end

3.0000

a=[ 3 pi log(2) ];

3.1416

0.6931

3

a=3:6;

4

5

6

8

a=8:-1:6;

7

6

5

0

a=[0:2:6] * 0.1;

0.2

0.4

0.6

1.00

a=linspace(1,2,5);

1.25

2.00

1.50

1.75

1

a=logpace(0,4,5);

10

10000

100

1000


Exercise 1 creating arrays

Exercise 1 - Creating Arrays

  • Create a row vector in which the first element is 5, and the last element is 41, with an increment of 3.

  • Create a column vector that has the elements: 3, ln(2), 0.34, and .


Plotting sound waveform

Plotting Sound Waveform

  • Read a sound file using wavread( ) and plot it.

waveform_plot.m

[s Fs] = wavread('thankyou.wav');

Ts = 1/Fs; % time between two adjacent samples

N = length(s);

t = (0:N-1)*Ts; % generate time values

figure(1), plot(t,s);

soundsc(s,Fs) % play the sound


Orientation

Orientation

  • Row or Column Vector

  • Transpose operator: '

3

a=[ 3;5;2 ];

3

b=a';

5

2

Transpose

5

2

a=[1 2; 4 5]

b=a';

1

2

1

4

4

5

2

5


Complex transpose

Complex Transpose

  • Hermitian – Complex conjugate transpose: '

  • Just transpose: .'

a=[1:3]';

1

b=complex(a,a);

1+1i

2

2+2i

3

3+3i

c=b';

1-1i

2-2i

3-3i

c=b.';

1+1i

2+2i

3+3i


Scalar array math operations

Scalar – Array Math Operations

  • Scalar operations affect all the elements in the array.

a=[1 2; 4 5]

b=a+2

1

3

2

4

4

6

5

7

b=2*a-1

b=a/2+1

1

1.5

3

2.0

7

3.0

9

3.5


Array array math operations 1 2

Array – Array Math Operations 1/2

  • Standard matrix operations apply.

a=[1 2; 4 5]

1

2

x=a+b

2

4

4

5

5

6

b=[0 0; 1 1]

1

2

x=a.*b

1

4

1

1

4

5

x=a*b

x=a/b

3

1

4

0

9

1

13

3


Array array math operations 1 21

Array – Array Math Operations 1/2

  • Element wise operations: .*, ./, .^

a=[1 2; 4 5]

1

2

4

5

x=a.^2

x=2.^a

1

4

2

4

16

16

25

32

x=a^2

x=a.^a

9

1

12

4

24

256

33

3125


Ones and zeros

Ones and Zeros

  • Useful for creating basic arrays for operations

a=ones(2)

b=ones(2,1)

1

1

1

1

1

1

c=zeros(3)

d=size(c)

0

0

3

3

0

0

0

0

m=2*ones(2)

2

2

0

0

0

2

2


Special matrices

Special Matrices

  • Identity matrix: eye(n)

  • Magic square: magic(n)

b=eye(3,2)

1

0

a=eye(2)

1

0

0

1

0

1

0

0

c=rand(2)

d=magic(3)

8

1

6

0.4103

0.0579

3

5

7

0.8936

0.3529

4

9

2

Uniform random variable

between 0 and 1


Diagonal matrix

Diagonal Matrix

  • diag(v,n)

a=1:3

b=diag(a)

1

1

0

0

2

3

0

2

0

0

0

3

b=diag(a,1)

b=diag(a,-1)

0

1

0

0

0

0

0

0

2

1

0

0

0

0

0

0

2

0


Array with the same elements

Array with the Same Elements

  • repmat( ) is the fastest.

SLOW

d=3.14

a = d * ones(5,3)

3.14

3.14

3.14

a = d + zeros(5,3)

3.14

3.14

3.14

3.14

3.14

3.14

a = d( ones(5,3) )

3.14

3.14

3.14

a = repmat(d,5,3)

3.14

3.14

3.14

FAST


Getting sub matrices

Getting Sub-matrices

  • Getting rows

    • n-th row: M( n, : )

    • m~n-th row: M( m:n,:)

  • Getting columns

    • r-th column: M( :, r )

    • r~s-th cols: M( :,r:s)

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

b= a(1,:)

1

2

3

4

5

6

7

8

9

c= a(:,2:end)


Exercise 2 sound editing

Exercise 2 - Sound Editing

  • Extract 'than-' female voice and '-kyou' male voice from 'thankyou.wav'. Concatenate them to forge a new 'thank-you' voice. Play the sound and plot the waveform.

tha---n-- - k- you--

tha---n-- - k- you--

tha---n-- - k- you--

ref: two.wav


Solution 2

Solution 2

  • Script

  • Sound Waveform

thankou_twovoices.m

[s Fs] = wavread('thankyou.wav');

figure(1), plot(s);

soundsc(s,Fs) % play the sound

..

soundsc(two,Fs) % play the forged sound


Notes

Notes


  • Login