You are on page 1of 8

İ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
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

Arş. Grv. Selman Fatih AVŞAR

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] Aynı satırdaki elemanlar arasına "," de konulabilir.

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:4;5:8] Arada ";" olduğu için 2 satırlık bir matris oluşturuldu.

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.

??? Undefined function or variable 'a'.

clear all Hafızadaki tüm değişkenleri sildi.

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

ones(2,1),zeros(1,2) ones(2,1) ile 2x1'lik 1 lerden oluşan matris oluşturuldu.

İ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:3],b=[4:6] 1x3lük a ve b matrisleri tanımlandı

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.

??? Error using ==> mtimes


Inner matrix dimensions must agree.

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.

??? Error using ==> mtimes


Inner matrix dimensions must agree.

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

a^2 Gene matrisel çarpım yapmak isteyecek ancak hata oluşacak.

??? Error using ==> mpower


Matrix must be square.

a.^2 Eleman-eleman karesini aldı.

İ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

rank(a) Bir matrisin rankı "rank() " şeklinde bulunur.

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

det(a) Matrisin determinantı, "det()" şeklinde bulunabilir.

ans =
6

a^-1 Matrisin tersi bu şekilde alınabilir.

ans =
-0.1667 1.1667 -0.5000
-1.6667 -1.3333 1.0000
1.5000 0.5000 -0.5000

inv(a) Matrisin tersi bu şekilde alınabilir.

ans =
-0.1667 1.1667 -0.5000
-1.6667 -1.3333 1.0000
1.5000 0.5000 -0.5000

a,diag(a) Matrisin diagonalini "diag()" komutu ile elde edebiliriz.

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.

??? Index exceeds matrix dimensions.

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.

??? Undefined function or variable 'A'.

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

a(1,:) a matrisinin 1. satır ve tüm sütunlarınının kesişimini gösteriyor.

ans =
1 2 3

a(1,[1 3]) a matrisinin 1. satır ve 1. 3. sütunlarınının kesişimini gösteriyor.

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

size(a),length(a),length(size(a)) size() komutunun matrisin boyutu ve her boyutundaki


eleman sayısı hakkında bilgi veridğini biliyorduk. a matisi bxc lik bir matris olsun. length(a) ise b>c için b,
b<c için c cevabını verir. length(size(a)) komutunda size(a) 1xdim (burada dim, a matrisinin boyutu) lik bir
matris olduğu için, a matrisinin boyutunu bu şekilde öğrenebiliriz.

İ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

eye(2) komutu ile 2x2 lik birim matris oluşturabiliriz.

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:

Daha geniş ve kapsamlı bilgi için;

Help Product Help MATLAB Getting Started Matrices and Arrays

İnönü Üniversitesi

You might also like