14
1 Diziler Dr. Mehmet Siraç Özerdem EEM Dicle Üniversitesi EEM104 - Bilgisayar Programlama Dizi (Array) Üç tür dizi ifadesi bulunmaktadır. Gerçel ve karmaşık sayıları ifade eden çift duyarlıklı diziler (double array) Metin, nesne ve alan içeren karakter/hücre/yapı dizileri (char/cell/struct array) Boyutu 2 den yüksek olan n-boyutlu diziler (n-dimensional array) Dr. Mehmet Siraç Özerdem

Introduction to MATLABdicle.edu.tr/akademikpersonel/sozerdem/eez102/Matlab lecture3.pdf · MATLAB Kılavuzu Dr. Aslan İnan Papatya Yayıncılık, Nisan 2011. Title: Introduction

  • Upload
    others

  • View
    31

  • Download
    1

Embed Size (px)

Citation preview

Page 1: Introduction to MATLABdicle.edu.tr/akademikpersonel/sozerdem/eez102/Matlab lecture3.pdf · MATLAB Kılavuzu Dr. Aslan İnan Papatya Yayıncılık, Nisan 2011. Title: Introduction

1

Diziler

Dr. Mehmet Siraç Özerdem

EEM – Dicle Üniversitesi

EEM104 - Bilgisayar Programlama

Dizi (Array)

Üç tür dizi ifadesi bulunmaktadır.

Gerçel ve karmaşık sayıları ifade eden çift

duyarlıklı diziler (double array)

Metin, nesne ve alan içeren karakter/hücre/yapı

dizileri (char/cell/struct array)

Boyutu 2 den yüksek olan n-boyutlu diziler

(n-dimensional array)

Dr. Mehmet Siraç Özerdem

Page 2: Introduction to MATLABdicle.edu.tr/akademikpersonel/sozerdem/eez102/Matlab lecture3.pdf · MATLAB Kılavuzu Dr. Aslan İnan Papatya Yayıncılık, Nisan 2011. Title: Introduction

2

Çift duyarlıklı diziler (double Array)

Genel olarak bir dizi skaler, vektör veya matris

şeklinde olabilir.

Dr. Mehmet Siraç Özerdem

scalar value

vector

matrix

15 -2 3 21

-4 1 0 13

3

1 40 -3 11

column

row

Faydalı fonksiyonlar

zeros(m,n) : returns a matrix of zeros

ones(m,n) : returns a matrix of ones

rand(m,n) : returns a matrix of uniform [0,1] random numbers

randn(m,n) : returns a matrix of normal, mean 0, variance 1, random numbers

Dr. Mehmet Siraç Özerdem

Page 3: Introduction to MATLABdicle.edu.tr/akademikpersonel/sozerdem/eez102/Matlab lecture3.pdf · MATLAB Kılavuzu Dr. Aslan İnan Papatya Yayıncılık, Nisan 2011. Title: Introduction

3

zeros()

x = zeros(2)

x = 0 0 0 0

z = zeros(2,3)

z = 0 0 0 0 0 0

y = zeros(1,4)

y = 0 0 0 0

t = zeros( size(z) )

t = 0 0 0 0 0 0

Dr. Mehmet Siraç Özerdem

z=ones(2,3);

size(z)

ans = 2 3

z=ones(4,3);

length(z)

ans = 4

z=ones(1,3);

length(z)

ans = 3

name = 'Dicle University';

size(name)

ans = 16

Dr. Mehmet Siraç Özerdem

Page 4: Introduction to MATLABdicle.edu.tr/akademikpersonel/sozerdem/eez102/Matlab lecture3.pdf · MATLAB Kılavuzu Dr. Aslan İnan Papatya Yayıncılık, Nisan 2011. Title: Introduction

4

>> x = [ 3 1 7 -21 5 6 ]

x =

3 1 7 -21 5 6

x(2)

x(6)

b=3; x(b)

x(2:4), x(3:end)

Dr. Mehmet Siraç Özerdem

>> v = [ 3 1 7 -21 5 6]'

v =

3

1

7

-21

5

6

>> v = [ 1 : 8 ]

v =

1 2 3 4 5 6 7 8

>>

Dr. Mehmet Siraç Özerdem

Page 5: Introduction to MATLABdicle.edu.tr/akademikpersonel/sozerdem/eez102/Matlab lecture3.pdf · MATLAB Kılavuzu Dr. Aslan İnan Papatya Yayıncılık, Nisan 2011. Title: Introduction

5

>> v = [ 2 : .25 : 4 ]

v =

Columns 1 through 7

2.0000 2.2500 2.5000 2.7500 3.0000 3.2500 3.5000

Columns 8 through 9

3.7500 4.0000

>>

Dr. Mehmet Siraç Özerdem

>> v( 1 : 3 )

ans =

0 2 4

>> v( 1 : 2 : 4 )

ans =

0 4

>>v( 1 : 3 ) - v( 2 : 4 )

ans =

-2 -2 -2

Dr. Mehmet Siraç Özerdem

>> v(1)

ans =

2

>> 0 : 2 : 8

ans =

0 2 4 6 8

Page 6: Introduction to MATLABdicle.edu.tr/akademikpersonel/sozerdem/eez102/Matlab lecture3.pdf · MATLAB Kılavuzu Dr. Aslan İnan Papatya Yayıncılık, Nisan 2011. Title: Introduction

6

>> v = [ 0 : 2 : 8 ]

v =

0 2 4 6 8

>> u = [ 0 : -1 : -4 ]

u =

0 -1 -2 -3 -4

>> u+v

ans =

0 1 2 3 4

Dr. Mehmet Siraç Özerdem

>> -2*u

ans =

0 2 4 6 8

>> v/3

ans =

0 0.6667 1.3333 2.0 2.6667

>> -2*u+v/3

ans =

0 2.6667 5.3333 8.0000 10.6667

>> u+v'

??? Error using ==> plus

Matrix dimensions must agree. Dr. Mehmet Siraç Özerdem

Page 7: Introduction to MATLABdicle.edu.tr/akademikpersonel/sozerdem/eez102/Matlab lecture3.pdf · MATLAB Kılavuzu Dr. Aslan İnan Papatya Yayıncılık, Nisan 2011. Title: Introduction

7

linspace (lineer)

>>linspace(x1,x2,n)

>>k=linspace(1,10,5)

>>k=1.0 3.25 5.5 7.75 10

logspace (logaritmik)

>>linspace(x1,x2,n)

>>d=logspace(0,2,5)

>>d=1.0 3.1623 10.0 31.6228 100.0

Dr. Mehmet Siraç Özerdem

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

y(2:end,2:end) = 0

y = 1 2 3 4 0 0 7 0 0

y(2:end,2:end) = [ -1 5 ]

??? Error y(2:end,2:end) = [ -1 ]

y = 1 2 3 4 -1 -1 7 -1 -1

y(2:end,2:end) = ( 4 )

y = 1 2 3 4 4 4 7 4 4

Dr. Mehmet Siraç Özerdem

Page 8: Introduction to MATLABdicle.edu.tr/akademikpersonel/sozerdem/eez102/Matlab lecture3.pdf · MATLAB Kılavuzu Dr. Aslan İnan Papatya Yayıncılık, Nisan 2011. Title: Introduction

8

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

y(2,[1 3]) = -2

y =

1 2 3

-2 0 -2

7 0 0

Dr. Mehmet Siraç Özerdem

>> A = [ 1 2 3 ; 3 4 5 ; 6 7 8 ]

A =

1 2 3

3 4 5

6 7 8

>>

>> B = [ [1 2 3]' [2 4 7]' [3 5 8]' ]

B =

1 2 3

2 4 5

3 7 8

>>

Dr. Mehmet Siraç Özerdem

Page 9: Introduction to MATLABdicle.edu.tr/akademikpersonel/sozerdem/eez102/Matlab lecture3.pdf · MATLAB Kılavuzu Dr. Aslan İnan Papatya Yayıncılık, Nisan 2011. Title: Introduction

9

>> v = [ 0 : 2 : 8 ]

v =

0 2 4 6 8

>> A*v(1:3)

??? Error using ==> *

Inner matrix dimensions must agree.

>> A*v(1:3)'

ans =

16

28

46

Dr. Mehmet Siraç Özerdem

>> A(1:2,2:3)

ans =

2 3

4 5

>> A(1:2,2:3)'

ans =

2 4

3 5

A = 1 2 3 3 4 5 6 7 8

Dr. Mehmet Siraç Özerdem

Page 10: Introduction to MATLABdicle.edu.tr/akademikpersonel/sozerdem/eez102/Matlab lecture3.pdf · MATLAB Kılavuzu Dr. Aslan İnan Papatya Yayıncılık, Nisan 2011. Title: Introduction

10

>> B = A( 1 : 2 : 3 , 2 : 3 )

B =

2 3

7 8

>> B = A( 2 : 1 , 2 : 3 )

B =

Empty matrix: 0-by-2

A = 1 2 3 3 4 5 6 7 8

Dr. Mehmet Siraç Özerdem

>> B1 = A( 1 , : )

B =

1 2 3

>> B2 = A( 3 , : )

B =

6 7 8

>> C = [ B1 B2 ]

C =

1 2 3 6 7 8

>> C = [ B1 ; B2 ]

C =

1 2 3

6 7 8

A = 1 2 3 3 4 5 6 7 8

Dr. Mehmet Siraç Özerdem

Page 11: Introduction to MATLABdicle.edu.tr/akademikpersonel/sozerdem/eez102/Matlab lecture3.pdf · MATLAB Kılavuzu Dr. Aslan İnan Papatya Yayıncılık, Nisan 2011. Title: Introduction

11

Matris Bilgi Alma Fonksiyonları

Matris transpozesi (AT), A’ ile bulunur.

Matrisin determinantı (|A|), det(A) ile bulunur.

Matrisin tersi (A-1), inv(A) ile bulunur.

Matrisin rankı, rank(A) ile bulunur.

Matrisin rankı, rank(A) ile bulunur.

Bir A matrisin tüm karesel alt matrislerinden, determinantı sıfırdan farklı olan en yüksek

boyutlusunun boyutuna A matrisinin rankı denir.

Matrisin boyutu, size(A) ile bulunur.

Matrisin köşegen elemanları, diag(A) ile bulunur.

Matrisin özdeğerleri ve özvektörleri,

[ozvektor ozdeger] = eig(A) ile bulunur.

Dr. Mehmet Siraç Özerdem

>> sin(v)

ans =

0.8415

0.9093

0.1411

>> log(v)

ans =

0

0.6931

1.0986

>>

Natural logarithm

Dr. Mehmet Siraç Özerdem

Page 12: Introduction to MATLABdicle.edu.tr/akademikpersonel/sozerdem/eez102/Matlab lecture3.pdf · MATLAB Kılavuzu Dr. Aslan İnan Papatya Yayıncılık, Nisan 2011. Title: Introduction

12

Matris – Matris İşlemleri

A*B A.*B

A/B veya A∙B-1 = A*inv(B) A./B

A\B veya B∙A-1 = B*inv(A) A.\B

A^B A.^B

Dr. Mehmet Siraç Özerdem

>> x = [ 0 : 0.1 : 100 ]

x =

Columns 1 through 7

0 0.1000 0.2000 0.3000 0.4000 0.5000 0.6000

[stuff deleted]

Columns 995 through 1001

99.4000 99.5000 99.6000 99.7000 99.8000 99.9000 100.0000

>> y = sin(x).*x./(1+cos(x));

>>

Dr. Mehmet Siraç Özerdem

Page 13: Introduction to MATLABdicle.edu.tr/akademikpersonel/sozerdem/eez102/Matlab lecture3.pdf · MATLAB Kılavuzu Dr. Aslan İnan Papatya Yayıncılık, Nisan 2011. Title: Introduction

13

Bazı Temel Fonksiyonlar

max : En büyük değeri verir

min : En küçük değeri verir

length : Verinin uzunluğunu hesaplar

sum : Verilerin toplamını verir.

prod : Verilerin çarpımını verir.

std : Verilerin standart sapmasını verir.

mean : Verilerin ortalamasını verir

geomean : Verilerin geometrik ortalamasını hesaplar

harmmean : Verilerin harmonik ortalamasını hesaplar

sort : Verileri azalan sırada sıralar

Dr. Mehmet Siraç Özerdem

Bazı Özel Matrisler

eye

pascal

magic

hilbert

meshgrid

Dr. Mehmet Siraç Özerdem

Page 14: Introduction to MATLABdicle.edu.tr/akademikpersonel/sozerdem/eez102/Matlab lecture3.pdf · MATLAB Kılavuzu Dr. Aslan İnan Papatya Yayıncılık, Nisan 2011. Title: Introduction

14

Örnekler

1’den 120’e kadar olan sayıların toplamı

1’den 100’e kadar çift sayıların karelerinin toplamı

1’den 75’e kadar 4 ile tam bölünebile sayıların ortalaması

5’den 15’e kadar olan sayılar için sol sütunda sayı, sağ sütunlarda sırasıyla karakökü ve tersi olacak şekilde listenin oluşturulması

Dr. Mehmet Siraç Özerdem

Kaynak

MATLAB Kılavuzu

Dr. Aslan İnan

Papatya Yayıncılık, Nisan 2011