Professional Documents
Culture Documents
önüÜniversitesiİnönüÜniversitesiİnön
üÜniversitesiİnönüÜniversitesiİnönüÜ
niversitesiİnönüÜniversitesiİnönüÜni
MATLAB Dersleri – Ders I
versitesiİnönüÜniversitesiİnönüÜnive
Matrisler ve Matrisel İşlemler
rsitesiİnönüÜniversitesiİnönüÜniversi
07.10.2010
tesiİnönüÜniversitesiİnönüÜniversites
iİnönüÜniversitesiİnönüÜniversitesiİn
önüÜniversitesiİnönüÜniversitesiİnön
üÜniversitesiİnönüÜniversitesiİnönüÜ
niversitesiİnönüÜniversitesiİnönüÜni
versitesiİnönüÜniversitesiİnönüÜnive
rsitesiİnönüÜniversitesiİnönüÜniversi
tesiİnönüÜniversitesiİnönüÜniversites
iİnönüÜniversitesiİnönüÜniversitesiİn
önüÜniversitesiİnönüÜniversitesiİnön
üÜniversitesiİnönüÜniversitesiİnönüÜ
niversitesiİnönüÜniversitesiİnönüÜni
a=[1 2 3;4 5 6;7 8 9] Bir matris tanımlanırken "[ ]" kullanılır. Aynı sütundaki elemanlar arasına
boşluk konulur. Yeni satır için ";" kullanılır.
a =
1 2 3
4 5 6
7 8 9
a =
1 2 3 4
5 6 7 8
a=0:5 Şeklindeki bir tanımlama, 0'dan 5'e kadar birer artırarak matris oluşturur ve "a"ya atar.
a =
0 1 2 3 4 5
a=1:0.5:3 ":" genel kullanımı ilkdeğer:artışmiktarı:sondeğer şeklindedir. 0'dan 5'e kadar 0.5er
artırarak matris oluşturur ve "a"ya atar. Eğer ilkdeğer:sondeğer şeklinde kullanılmışsa artış miktarı 1alınır.
a =
1.0000 1.5000 2.0000 2.5000 3.0000
a=1:0.5:3.2 Matrisi oluştururken ilk kısıttan başlar, belirtilen artış miktarı kadar artırarak devam
eder. Son değeri geçince işlemi sonlandırır. Yani son değer her zaman matrisin elemanı olmayabilir.
(k herhangibir tamsayı iken ilk değer+k*artış miktarı≠sondeğer ise)
a =
1.0000 1.5000 2.0000 2.5000 3.0000
a=[1:4,6:9] Şeklindeki bir tanımlamada matrisin ilk elemanları 1:4 tamamlanana kadar oluşturuldu.
Daha sonra arada "," işareti olduğu için aynı satıra 6:9 elemanları eklendi.
a =
1 2 3 4 6 7 8 9
a =
1 2 3 4
5 6 7 8
İnönü Üniversitesi
a(2,3) Tanumlanmış bir matrisin elemanlarına ulaşmak için "()" kullanılır. Burada 2. satır,3. sütun
elemanına ulaşılmıştır.
ans =
7
a(1)
a(4) a matrisi 2 boyutlu bir matris olduğu için a(1,1), a(2,1) şeklinde kullanmamız beklenirdi ancak a(n)
şeklinde kullanırsak a matrisinin n. elemanını verir. a matrisi I satır, j sütundan oluşuyorsa 2. eleman a(2,1),
(i+1). elemanı a(1,2) şeklindedir yani önce satırda ilerliyor.
ans =
1
ans =
6
a(1),a(2) Bilindigi gibi a(1) ve a(2) nin ekranda görünmesini istiyorsak, noktalı virgülsüz bir şekilde
alt alta yazıyorduk. Aynı satıra yazıp, ikisininde görünmesini istiyorsak iki terim arasına virgül
konulmalıdır.
ans =
1
ans =
5
a =
1 2 3 4
5 6 7 8
clear a
a "clear a" komutu ile a değişkeni bellekten silindi. Daha sonra a değişkenini göster deyince hata verdi.
ones(2),zeros(2) ones(2) ile 2x2lik 1lerden oluşan matris oluşturuldu. zeros(2) ile 2x2 lik 0lardan
oluşan matris oluşturuldu.
ans =
1 1
1 1
ans =
0 0
0 0
İnönü Üniversitesi
ans =
1
1
ans =
0 0
ones(2)*5 1'lerden oluşan matrisi b sayısı ile çarparak, b'lerden oluşan matris şekline dönüştürebiliriz
ans =
5 5
5 5
a =
1 2 3
b =
4 5 6
a*b 2 matris arasındaki * işareti, matrisel çarpım yapılacağı anlamına gelir. Burada iki matriste 1x3lük
olduğu için matrisel çarpım yapılamaz, aşağıdaki hata görünür.
a*b' matris transpozunu ' işareti ile ya da transpose() komutu ile aldırabiliriz. 1x3*3x1=1x1 lik sonuç
elde ederiz.
ans =
32
a*a 1x3*1x3 olduğu için, bir matrisi kendisi ile de matrisel çarpamayabiliriz.
a.*a Eger a matrisinin elemanlarının karesini almak istiyorsak, eleman-eleman işlem yapılacağını ifade
eden "." işaretini kullanmalıyız. Yani ".*" işareti, eleman eleman çarp anlamına gelir.
ans =
1 4 9
İnönü Üniversitesi
ans =
1 4 9
a=[1:3;4:6;7,11,13] 1. satır elamanları 1den 3e kadar ve artış miktarı 1 olacak şekilde, 2. satır
elamanları 4ten 6ya kadar ve artış miktarı 1 olacak şekilde, 3. satır elamanları 7,11,13 şeklinde belirlenmiş
a =
1 2 3
4 5 6
7 11 13
ans =
3
size(a) "size()" komutunu kullanarak, bir matrisin kaç boyutlu ve her boyutunun kaç elemanı olduğu
anlaşılabilir. Mesela a matrisi iki boyutlu 3x3lük bir matrismiş.
ans =
3 3
ans =
6
ans =
-0.1667 1.1667 -0.5000
-1.6667 -1.3333 1.0000
1.5000 0.5000 -0.5000
ans =
-0.1667 1.1667 -0.5000
-1.6667 -1.3333 1.0000
1.5000 0.5000 -0.5000
a =
1 2 3
4 5 6
7 11 13
ans =
1
İnönü Üniversitesi
5
13
a(4,1) a, 3x3lık bir matris olduğu için 4. satır elemanına ulaşmaya çalışırsak hata alacağız.
a(4,1)=1 Ancak 4. satır elemanı atarsak, a 4x3'lük bir matris olur ve atanma yapılmamış elemanların
değeri 0 olarak kabul edilir.
a =
1 2 3
4 5 6
7 11 13
1 0 0
A Matlabda, büyük-küçük harf farklı değişkenlerdir. Şuan "a" tanımlı ancak "A" tanımlı değil.
a,b=a+1 Şeklindeki bir ifade de, b matrisi a'nın her elemanına 1 eklenmesi sonucunda oluşur.
a =
1 2 3
4 5 6
7 11 13
1 0 0
b =
2 3 4
5 6 7
8 12 14
2 1 1
ans =
1 2 3
ans =
1 3
a,a(:,2)=[] a matrisinin istediğimiz sütununu veya satırını silebiliriz. Burada 2. sütun elemanları
seçilip boş kümeye eşitlenmiştir yani silinmiştir. Burada dikkat edilmesi gereken husus, sileceksek tüm
satırı veya sütunu silmemizin gerekli olmasıdır.
İnönü Üniversitesi
a =
1 2 3
4 5 6
7 11 13
1 0 0
a =
1 3
4 6
7 13
1 0
a=a(1:3,1:end) Klasik programlama mantığı ile de istediğimiz satır ve sütunu silebiliriz. Mesela
burada a matrisinin ilk üç satırı ve tüm sunlarının kesişimi, yani 4. satır hariç tüm elemanları seçilip, tekrar
a'ya atandı. Böylelikle a, aşağıdaki şekle dönüştü.
a =
1 3
4 6
7 13
a([2:end],1:end) a matrisinin 2'den sonuncu satırına kadar ve 1den sonuncu sütununa kadar olan
elemanlarının kesişimini gösteriyor. ":" kullanıldıysa "[]" kullanmaya gerek yoktur.
ans =
4 5 6
7 11 13
1 0 0
a
a =
1 2 3
4 5 6
7 11 13
1 0 0
size(a),diag(a) Demekki 4x3lük bir matriste diag() komutu sonucu gene 3 elemanlı oluyor.
ans =
4 3
ans =
1
5
13
İnönü Üniversitesi
ans =
2 4
ans =
4
ans =
2
rand(1,2) komutu ile [0,1] aralığında rasgele üretilmiş elemanlardan oluşan 2x2lik matris elde ederiz.
ans =
0.0318 0.2769
ans =
1 0
0 1
Matrisler birbirine eklenebilir. Burada dikkat edilmesi gereken husus boyutların uyuşmasıdır. Aşağıda
matrisleri birbirine ekleme ile ilgili örnekler içeren uygulama verilmiştir:
İnönü Üniversitesi