introduction to matlabdicle.edu.tr/akademikpersonel/sozerdem/eez102/matlab lecture3.pdf · matlab...
TRANSCRIPT
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
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
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
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
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
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
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
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
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
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
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
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
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
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