Matlab’de Matris İşlemleri
Önceki yazıda sizlere Matlab’de vektörün nasıl tanımlandığından ve vektör üzerinde kullanabileceğiniz birkaç komuttan bahsetmiştim. Bu yazıda ise matrisin nasıl tanımlandığından ve matris üzerinde kullanabileceğiniz birkaç komuttan bahsedeceğim.
İçerikler
Matris Tanımlama
Matlab’de matris [a b c; d e f ; g h j] şeklinde tanımlanır. Matrisin satırlarını ayırmak için “(;), Noktalı virgül” kullanılır. Burada örnek olarak 3×3’lük bir matris tanımladım ama siz ihtiyacınız olan boyutta, matrisi yine bu şekilde tanımlayabilirsiniz.
A = [1 2 3 ; 4 5 6 ; 7 8 9] biçiminde 3×3’lük bir matris tanımlayalım. Matrisin içerisinden herhangi bir elemana A(satır numarası, sütun numarası) şeklinde ulaşılır. Burada ise A matrisinin içerisinden 5 elemanına A(2,2) yazarak ulaşılabilir. Matris içerisindeki birden fazla elemana ulaşmak da mümkündür. Örnek olarak A(2, 2:3) yazarak çıktı olarak 2. satırın 2. ve 3. sütunlarının elemanları olan [5 6] değerlerini elde ederiz.
>> A = [1 2 3; 4 5 6; 7 8 9]
A =
1 2 3
4 5 6
7 8 9
>> A(2,2)
ans =
5
>> A(2,2:3)
ans =
5 6
Matrislere Sütun ya da Satır Ekleyip-Çıkarma
Tanımlanılan bir matrisi ihtiyaç duyulduğu taktirde sütun ya da satır şeklinde elemanlar ekleyip çıkarabiliriz. A matrisine x sütunu eklenmek isteniyorsa, [A, x] yazılabilir. Eğer ki y satırı eklenmek isteniyorsa [A; y] yazılması yeterlidir. Örnek olsun diye A matrisi tanımlamıştık. Bu A matrisine x = [10; 11; 12] vektörünü eklemek istersek, [A, x] yazarız. Bir başka vektör olan y = [13 14 15] vektörünü eklemek istersek, [A; y] yazarız.
INPUT:
>>A = [1 2 3; 4 5 6; 7 8 9]
OUTPUT:
A = 1 2 3 4 5 6 7 8 9
INPUT:
>>x = [10; 11; 12]
OUTPUT:
x = 10 11 12
INPUT:
>>[A, x]
OUTPUT:
ans = 1 2 3 10 4 5 6 11 7 8 9 12
INPUT:
>>A = [1 2 3; 4 5 6; 7 8 9]
OUTPUT:
A = 1 2 3 4 5 6 7 8 9
INPUT:
>>y = [13; 14; 15]
OUTPUT:
x = 13 14 15
INPUT:
>>[A, y]
OUTPUT:
ans = 1 2 3 4 5 6 7 8 9 13 14 15
Matrisin içerisinden satır ya da sütun silinmek isteniyorsa, A(satır numarası, : ) =[ ] veya A(:, sütun numarası) = [ ] yazılabilir. Burada dikkat edilmesi gereken detay ise matrisin tek bir elemanın silinememesidir. Bunun sebebi ise boyut uyumsuzluğunun ortaya çıkmasıdır. Ancak burada matrisin bir elemanını değiştirmek mümkündür. Örnek ile göstermek gerekirse, A[3,2] = 5 yazarsak yeni matrisimiz aşağıdaki gibi olur.
INPUT:
>> A = [1 2 3; 4 5 6; 7 8 9]
OUTPUT:
A = 1 2 3 4 5 6 7 8 9
INPUT:
>> A(1, :) =[ ] %satır silme
OUTPUT:
A = 4 5 6 7 8 9
INPUT:
>> A(:, 1) =[ ] %sütun silme
OUTPUT:
A = 5 6 8 9
INPUT:
>> A(2,2) = 3 %değer değiştirme
OUTPUT:
A = 5 6 8 3
Matrisi Yeniden Boyutlandırma
Matlab’de matrislerle işlemler gerçekleştirilirken, matrisin boyutu işlemlerimize uygun olmayabilir ya da herhangi bir sorun olmamasına rağmen matrisin boyutunu değiştirip işlem yapmak isteyebilirsiniz. Bu durumda reshape() komutu kullanılır.
Örnek olarak B = [1 2; 2 5 ; 7 6] şeklinde (3×2)’lik bir matris tanımlansın. B matrisini (2×3) boyutuna getirmek için C = reshape(B, [2 , 3]) yazılması yeterlidir.
>> B = [1 2 ; 2 5 ; 7 6]
B =
1 2
2 5
7 6
>> C = reshape (B,[2,3])
C =
1 7 5
2 2 6
Matrislerde Temel Bazı Kodlar
zeros komutu: zeros(m,n) şeklinde kullanılır. mxn’lik sıfır matrisi oluşturmaya yarar.
>> zeros(3,3)
ans =
0 0 0
0 0 0
0 0 0
ones komutu: ones(m,n) şeklinde kullanılır. mxn’lik birlerden oluşan bir matris verir.
>> ones(3,4)
ans =
1 1 1 1
1 1 1 1
1 1 1 1
eye komutu: eye(m,n) şeklinde kullanılır. mxn’lik birim matris oluşturur.
>> eye(3,3)
ans =
1 0 0
0 1 0
0 0 1
rand komutu: rand(m,n), mxn’lik elemanları 0-1 arasında olan bir matris oluşturur. Elemanlar rastgele seçilir.
>> rand(4,4)
ans =
0.8147 0.6324 0.9575 0.9572
0.9058 0.0975 0.9649 0.4854
0.1270 0.2785 0.1576 0.8003
0.9134 0.5469 0.9706 0.1419
diag komutu: diag(A), köşegeni A matrisinin köşelerinden oluşan diagonal bir matris üretir.
>> A = [1 2 3; 4 5 6; 7 8 9]
A =
1 2 3
4 5 6
7 8 9
>> diag(A)
ans =
1
5
9
det komutu: Bir matrisin determinantını hesaplamak için kullanılır.
>> det(A)
%aynı matris için
ans =
6.6613e-16
rank komutu: Matrisin derecesini(rank) hesaplamak için kullanılır.
>> rank(A)
ans =
2
find komutu: Sıfır olmayan elemanların indeks numaralarını verir.
>> find(A)
ans =
1
2
3
4
5
6
7
8
9
trace komutu: Matrisin köşe elemanlarının toplamını hesaplar.
>> trace(A)
ans =
15
Önceki bölümde belirtilen komutlar matrislerde de kullanılabilir. Bu komutların kullanımları yukarıdaki komutların kullanımlarına benzerdir.
Buraya tıklayarak önceki yazı olan Matlab’de dört işlem ve temel fonksiyonlar yazısına gidebilirsiniz.