handling arrays 1 2
Download
Skip this Video
Download Presentation
Handling Arrays 1/2

Loading in 2 Seconds...

play fullscreen
1 / 24

Handling Arrays 1/2 - PowerPoint PPT Presentation


  • 83 Views
  • Uploaded on

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,

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

PowerPoint Slideshow about ' Handling Arrays 1/2' - thom


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

ad